UDP-Kommunikation
Verfasst: 6. Juli 2011, 14:38
Hallo,
ich habe aktuell ein neues kleines Projekt. Ich habe ein Gerät mit Windows CE 5.0 mit Touchscreen-Bildschirm, LAN und anderen Spielerreien.
Nun wollte ich mit einem kleinen Programm eine erzeugte Buchung mittels UDP an einen PC schicken.
Start Programm:
nPort ist 8475
In 2 gestarteten Threads soll die ganze Geschichte bedient werden.
sIP ist eine definierte IP-Adresse.
Beim Beenden wird wieder alles geschlossen und die Threads vorher beendet. Die positive Nachricht ist, dass versendete Buchungen am Programm am PC auf dem Port ankommen. Die schlechte ist, dass das Programm auf dem PC die Buchung mit einem "OK" beantwortet, aber dies nicht an dem Gerät ankommt. In dem Protoll sehe ich demzufolge
Nun steht in der Hilfe, dass ich eine "special UDP syntax" verwenden soll. Aber diese kann ich nicht finden, wie sie sich zusammen setzt.
ich habe aktuell ein neues kleines Projekt. Ich habe ein Gerät mit Windows CE 5.0 mit Touchscreen-Bildschirm, LAN und anderen Spielerreien.
Nun wollte ich mit einem kleinen Programm eine erzeugte Buchung mittels UDP an einen PC schicken.
Start Programm:
Code: Alles auswählen
IF SocketCreateUDP("Server", nPort) = False THEN
Error("Fehler beim Öffnen von UDP-Port "+nPort+" "+ErrorInfo(errMessage))
RETURN
END
In 2 gestarteten Threads soll die ganze Geschichte bedient werden.
Code: Alles auswählen
ThreadExecute("Senden", threadNormal, "Daten_Senden")
ThreadExecute("Empfangen", threadNormal, "Daten_Empfangen")
Code: Alles auswählen
PROCEDURE Daten_Empfangen()
sReply is string
WHILE SocketExist("Server")
Log2File("Schleife Datenempfang",cLog)
sReply = SocketRead("Server", False, 1000)
IF sReply <> "" THEN
Log2File("Datenempfang "+sReply+" "+SocketClientInfo("Server", SocketAddress),cLog)
ELSE
Log2File("kein Datenempfang "+SocketClientInfo("Server", SocketAddress),cLog)
END
END
Code: Alles auswählen
PROCEDURE Daten_Senden()
WHILE SocketExist("Server")
IF gsCDaten<>"" THEN
IF SocketWrite("Server", gsCDaten+CRLF, sIP, nPort) = True THEN
Log2File("Daten gesendet: "+gsCDaten,cLog)
gsCDaten=""
END
END
END
Beim Beenden wird wieder alles geschlossen und die Threads vorher beendet. Die positive Nachricht ist, dass versendete Buchungen am Programm am PC auf dem Port ankommen. Die schlechte ist, dass das Programm auf dem PC die Buchung mit einem "OK" beantwortet, aber dies nicht an dem Gerät ankommt. In dem Protoll sehe ich demzufolge
Code: Alles auswählen
Schleife Datenempfang
kein Datenempfang
Schleife Datenempfang
kein Datenempfang
Schleife Datenempfang
kein Datenempfang
Schleife Datenempfang
kein Datenempfang
Daten gesendet: xyzabc
Schleife Datenempfang
kein Datenempfang
Schleife Datenempfang
kein Datenempfang
Schleife Datenempfang
kein Datenempfang