Hallo Forum,
ich würde gerne einen einfachen TCP Socket in Autoit erstellen, der die ganze Zeit auf meinem PC auf einem Port läuft.
Wenn sich ein Gerät (egal was) verbindet, soll der Socket das erkennen.
Wenn jetzt Daten von dem Gerät an den Socket gesendet werden, möchte ich diese in einer einfachen MsgBox für den Anfang ausgeben.
Ich habe es auch schon soweit geschafft das ich beim einwählen meines Gerätes die MsgBox bekomme, und wenn ich dann einmalig Daten Sende, dann bekomme ich diese auch ausgegeben.
Aber eben funktioniert das leider nur einmal. Danach muss ich den Socket neu starten.
Könnt Ihr mir helfen zu verstehen warum das nicht funktioniert und nur einmal Daten annimmt und ausgibt?
Danke EUCH, bzw. DIR !
Hier mein kleines Socket Script:
[autoit]
TCPStartup() ; TCP wird initialisiert
$mainsocket = TCPListen("192.168.178.49", 11111) ; Den mainsocket erstellen
[/autoit][autoit][/autoit][autoit]Do ; Solange ausführen bis sich ein Gerät verbindet
$acceptedSocket = TCPAccept($mainsocket) ; Wir versuchen eine möglicher Verbindung anzunehmen
Until $acceptedSocket <> -1
[/autoit][autoit][/autoit][autoit]MsgBox(0,"","Eine Verbindung wurde hergestellt") ; Hier hat ein Gerät eine Anfrage gesendet
[/autoit][autoit][/autoit][autoit][/autoit][autoit]while 1
[/autoit][autoit][/autoit][autoit]$receivedData = TCPRecv($acceptedSocket, 1024) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
[/autoit][autoit][/autoit][autoit]if $receivedData <> "" then ;Wenn Daten vorhanden sind, dann gebe die Msgbox aus...
MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
EndIf
WEnd
[/autoit][autoit][/autoit][autoit]TCPCloseSocket($acceptedSocket)
[/autoit]