UDP Problem
Übersicht

![]() |
SchnittlauchUnkrautBetreff: UDP Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Ich versuche gerade meinen TCP Jamps Server auf UDP umzustellen. Es muss halt sein. So, jetzt zum Problem. Code: [AUSKLAPPEN] if not server.Eof() Then Local inmsg:String = server.ReadLine() if inmsg <> 0 Then Print "INCOMIG MSG: "+inmsg End If End if Hier verfängt sich der Server irgendwie. MFG Schnittlauch |
||
Ich wars nicht. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] if inmsg <> "" Then
versuchs damit. Er versucht doch sicher die 0 in "0" umzuwandeln. Und "0" ist <> "". mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welche Netzwerklib verwendest du denn?
Wenn BNetEx, aus den Examples: Code: [AUSKLAPPEN] If Client.RecvAvail() Then
While Client.RecvMsg() ; Wend If Client.Size() > 0 Then Print("Message from client:") Print(" - IP = " + TNetwork.StringIP(Client.GetLocalIP())) Print(" - Port = " + Client.GetLocalPort()) While Not Client.EoF() Print(">"+Client.ReadLine()) Wend Client.WriteLine("OK") While Client.SendMsg() ; Wend EndIf EndIf |
||
Blog. |
![]() |
SchnittlauchUnkraut |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich benutze nur Sockets, und der Server hängt sich immernoch auf -.- | ||
Ich wars nicht. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, ich würds ja mit While Not Server.EoF() versuchen. Und soweit ich weiß, liest ReadLine entweder bis zum ~n~r oder bis zum Ende des Streams aus, so dass du die Abfrage mit <> "" eh ersparen kannst.
Ansonsten können wir dir ohne mehr Code nicht helfen. Bei den Socketstream von BRL wird dein Programm wird solange angehalten, bis was rein kommt. Du solltest danach also erstmal die Verbindung prüfen, denn entweder liegt eine auslesbare Nachricht danach vor oder die Verbindung wurde getrennt. mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code des Clienten:
Code: [AUSKLAPPEN] If PB_ButtonClick((Server$(i, 6))) Then
;; Jetzt Ping Pingstream = CreateUDPStream(49252) If Pingstream <> 0 Then Server$(i, 5) = "Ping..." WriteLine PingStream, "PING";"LMI" + Chr(10) + "DUMMY" + Chr(10) + "1" + Chr(10) + Version# SendUDPMsg Pingstream, (Server$(i, 0)) goT = MilliSecs() PingString$ = UDPholen$(PingStream) If PingString$ = "PONG" Then stopT = MilliSecs() time = stopT - goT Server$(i, 5) = time + "ms" Else Server$(i, 5) = "Falsche Rückmeldung." EndIf Else Server$(i, 5) = "Nicht erreichbar." EndIf EndIf Herraus kommt immer "Nicht erreichbar." Mit TCP hat es aber noch funktioniert :/ |
||
Lieber Apfel als Birne. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, dann ist vllt. der Port gerade blockiert. Liegt meistens daran, dass das Programm nicht richtig beendet wurde und auch der Socket nicht freigegeben wird. Ich würde immer das Betriebsystem den Port aussuchen lassen und beim versenden den richtigen Remoteport angeben.
mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
SchnittlauchUnkraut |
![]() Antworten mit Zitat ![]() |
---|---|---|
so, jz kommt mehr code.
Code: [AUSKLAPPEN] Function inudp:String() ' Local cl:TClient ' For cl:TClient = EachIn cllist ' if SocketReadAvail(cl.sok) > 0 Then ' Local inmsg:String = cl.con.ReadLine() ' if Left(inmsg$,4) = "PING" Then ' cl.con.WriteLine("PONG") ' Else ' Print inmsg$ ' End if ' Print inmsg$ ' End if ' if makeop = cl.name Then ' cl.stat = 6 ' outwin.AddText(cl.name+" is now an OP"+Chr(10)) ' cl.con.WriteLine("YAO") ' makeop = "" ' End If ' Next 'if not server.Eof() Then Local inmsg:String = server.ReadLine() if inmsg <> "" Then Print "INCOMIG MSG: "+inmsg End If 'End if End Function ... Function starttcpserver() server_socket = CreateUDPSocket() if BindSocket(server_socket,49252) Then ' SocketListen(server_socket) server = CreateSocketStream(server_socket,False) End if End Function Und der Server stürzt wirklich ab -.-[/url] |
||
Ich wars nicht. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Haste mal alles einzeln nacheinander abgefahren? Meistens sieht man da gleich, wo das Problem wirklich auftaucht.
mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
SchnittlauchUnkraut |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er steckt bei dem read Befehl ![]() |
||
Ich wars nicht. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group