Hallo Leute,
ich habe mal eine Frage an euch. Nachdem ich lange herumprobiert habe und auch viel gegoogelt und hier geguckt habe, komm ich leider alleine nicht mehr weiter ..
Ich habe einen simplen TCP Server und Client. Die funktionieren auch soweit erstmal. Das Senden von Daten funktioniert auch, nur schaffe ich es nicht auf bestimmte gesendete Wörter zu reagieren.
Hier mal der Quellcode:
Global $conned = False
Global $ConnectedSocket = ""
TCPStartUp()
OnAutoItExitRegister("_resetConnection()")
$MainSocket = TCPListen ("0.0.0.0", 8898, 5)
If $MainSocket = -1 Then
Exit
EndIf
_waitForConn()
Func _waitForConn()
While $conned = False
$ConnectedSocket = TCPAccept ($MainSocket)
If $ConnectedSocket >= 0 Then
$conned = True
_connected()
EndIf
Sleep(200)
WEnd
EndFunc
Func _connected()
While $conned = True
$pack = TCPRecv ($ConnectedSocket, 2048)
If $pack <> "" Then
Switch $pack
Case 'test'
TCPSend($ConnectedSocket, "läuft" & @CRLF)
Case "exit"
_resetConnection()
EndSwitch
;~ TCPSend($ConnectedSocket, $pack & @CRLF)
EndIf
Sleep(200)
WEnd
EndFunc
Func _resetConnection()
TCPCloseSocket ($ConnectedSocket)
$ConnectedSocket = -1
$conned = False
_waitForConn()
EndFunc
Alles anzeigen
und hier der client:
TCPStartup()
HotKeySet("{F5}", "SendData")
Global $Sock = TCPConnect("127.0.0.1", 8898)
While 1
Local $sRecv = TCPRecv($Sock, 8192)
If $sRecv = "" Then ContinueLoop
MsgBox(4096, "Server Reply", $sRecv)
WEnd
Func SendData()
Local $sData = InputBox("Send To Server", "Enter the string of data you wish to send to the server...")
If $sData = "" Then Return
TCPSend($Sock, $sData & @CRLF)
EndFunc
Alles anzeigen
Wenn ich jetzt Daten sende, dann kommen die an (ich kann die zurück loopen und es kommt genau das wieder an was ich gesendet habe).
Aber wenn ich jetzt einen Switch nach den gesendeten Wörtern mache, dann schafft er es nicht auf das Wort zu reagieren, obwohl es exakt so reinkommt wie ich es will .. Ich hoffe ihr versteht was ich meine
(siehe Zeile 30)
Da ich immer nur ein Wort bzw eine "Line" senden will, brauche ich die Daten die reinkommen nicht nach @crlf oder ähnlichem zu splitten ..
Muss ich die empfangenen Daten noch irgendwie umformatieren oder so?
Ich weiß echt nicht mehr weiter. Es wäre sehr nett wenn ihr mir da helfen könnten
lg
Leo.1906