Erneutes UDP Problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Toasty

Betreff: Erneutes UDP Problem

BeitragMi, Sep 01, 2010 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe mal wieder ein Problem mit UDP,
und zwar wenn der Client eine Nachricht sendet,
bekommt der Server sie auch und rechnet sie aus, aber sendet sie anscheinend nicht zurück.
Woran kann das liegen?

Client:
BlitzBasic: [AUSKLAPPEN]
	Send_Char_MSG("GetChatHistory",Char_Stream,udp_char_ip,udp_char_port)

DebugLog UDPMsgPort(Char_Stream)

Repeat
recv=RecvUDPMsg(Char_Stream)
If recv<>0 Then Exit
Forever

DebugLog"Chat Stream recived."

If tmp_id=1 Then
msg$=ReadString(Char_Stream)
ElseIf tmp_id=2 Then
ReadString(Char_Stream)
msg$=ReadString(Char_Stream)
ElseIf tmp_id=3 Then
ReadString(Char_Stream)
ReadString(Char_Stream)
msg$=ReadString(Char_Stream)
ElseIf tmp_id=4 Then
ReadString(Char_Stream)
ReadString(Char_Stream)
ReadString(Char_Stream)
msg$=ReadString(Char_Stream)
ElseIf tmp_id=5 Then
ReadString(Char_Stream)
ReadString(Char_Stream)
ReadString(Char_Stream)
ReadString(Char_Stream)
msg$=ReadString(Char_Stream)
EndIf


Zum ausprobieren habe ich den Teil wo es gesendet wird, in eine extra Exe gepackt und parallel zu dem Server laufen.

Server (Eingang)
BlitzBasic: [AUSKLAPPEN]
	udp_read=RecvUDPMsg(instrm)
If udp_read<>0 Then
client_speed=ReadAvail(instrm)
If client_speed=0 Then Exit;Print"Client Speed too few!":Exit

client_char$=ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
ReadLine(instrm)
;ReadLine(instrm)
;...

ElseIf Left(client_message$,4)="CHAT" Then
Chat_Message$=Right(client_message$,Len(client_message)-5)

chat_db_file=WriteFile(db+"SVR_CHATLOG\"+client_char$+".inf")
WriteLine chat_db_file,Chat_Message$
CloseFile(chat_db_file)

Glob_ChatLine1$=Glob_ChatLine2$
Glob_ChatLine2$=Glob_ChatLine3$
Glob_ChatLine3$=Glob_ChatLine4$
Glob_ChatLine4$=Glob_ChatLine5$
Glob_ChatLine5$=client_char$+": "+Chat_Message$
Print"[CHAT] "+Glob_ChatLine5$
ElseIf client_message$="GetChatHistory" Then
Print"[CHAT HIS] Client requested."

out=WriteFile("tmp_csv")

WriteLine out,Glob_ChatLine1$
WriteLine out,Glob_ChatLine2$
WriteLine out,Glob_ChatLine3$
WriteLine out,Glob_ChatLine4$
WriteLine out,Glob_ChatLine5$
WriteLine out,client_ip$
WriteLine out,client_port$
CloseFile(out)

Repeat
If FileType("tmp_csv")<>1 Then Exit
Forever


Server (Ausgang)
BlitzBasic: [AUSKLAPPEN]
	Repeat
in=ReadFile("tmp_csv")
If in<>0 Then Exit
Forever

Print"Server answer recived for client..."

Chat1$=ReadLine(in)
Chat2$=ReadLine(in)
Chat3$=ReadLine(in)
Chat4$=ReadLine(in)
Chat5$=ReadLine(in)
C_IP$=ReadLine(in)
C_Port$=ReadLine(in)
Print C_IP$+":"+C_Port$
CloseFile(in)
DeleteFile("tmp_csv")

WriteString udp,Chat1$
WriteString udp,Chat2$
WriteString udp,Chat3$
WriteString udp,Chat4$
WriteString udp,Chat5$
SendUDPMsg udp,C_IP$,C_Port$


IP und Port bekommt der Ausgangs-Server, aber will es anscheinend nicht weiterleiten.

Gruß Toasty
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group