Hallöchen liebe Community,
Ich habe einen Server und einen Client gescriptet. Der Server liefert die Daten und der Client liest sie dann aus.
Der Server speichert die Daten als textfiles ab, der Client liest sie dann aus.
Jetzt möchte ich, das man den Server über den Client steuern kann (Beenden, Neustarten und Daten aktualiseren). Dafür will ich TCP/IP nutzen
Ich habe mir die Beispiele in der Hilfedatei angesehen und ich denke, soweit ist ist alles korrekt, ich kriege aber immer einen Timeout vom Client bei TCPConnect()
Das Serverscript läuft auf einem Server, die Clients jeweils auf verschiedenen PC´s
Hier die Teile vom Serverscript:
Spoiler anzeigen
Dim $szIPADDRESS = @IPAddress1 ;192.168.1.10
Dim $nPORT = 33891
TCPStartUp()
$MainSocket = TCPListen($szIPADDRESS, $nPORT, 1)
$ConnectedSocket = -1
Switch @WDAY
Case 2 To 6
Switch @HOUR
Case 8 To 21
Do
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket <> -1 Then
$clientconnected = 1
ExitLoop
EndIf
Until @Min = $Minutes
If $clientconnected = 1 Then
Dim $szIP_Accepted = SocketToIP($ConnectedSocket)
Dim $msg, $recv
While 1
$recv = TCPRecv( $ConnectedSocket, 2048 )
If @min = $Minutes Then
ExitLoop
ElseIf $recv <> "" Then
If $recv = "Shutdown" Then
_FileWriteLog(@ScriptDir & "\server.log", "Server wurde heruntergefahren von "&$szIP_Accepted)
TCPCloseSocket( $ConnectedSocket )
TCPShutDown()
Exit
ElseIf $recv = "Restart" Then
_FileWriteLog(@ScriptDir & "\server.log", "Server wurde neugestartet von "&$szIP_Accepted)
TCPCloseSocket( $ConnectedSocket )
TCPShutDown()
Run (@ScriptName)
Exit
ElseIf $recv = "Refresh" Then
_FileWriteLog(@ScriptDir & "\server.log", "Server Daten werden aktualisert. Refresh gestartet von "&$szIP_Accepted)
ExitLoop
EndIf
EndIf
WEnd
EndIf
EndSwitch
Case Else
Do
Sleep(28800000)
Until @WDAY = 2
EndSwitch
Und der Client:
Spoiler anzeigen
Global $szIPADDRESS = "192.168.1.10", $nPORT = 33891
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Adminrefresh
If $admin = 1 Then
TCPStartup()
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
Else
TCPSend($ConnectedSocket, "r3fr35h")
If @error Then
MsgBox(4112, "Error", "TCPSend failed with WSA error: " & @error)
EndIf
EndIf
TCPShutdown()
EndIf
Case $Adminrestart
If $admin = 1 Then
TCPStartup()
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
Else
TCPSend($ConnectedSocket, "r357ar7")
If @error Then
MsgBox(4112, "Error", "TCPSend failed with WSA error: " & @error)
EndIf
EndIf
TCPShutdown()
EndIf
Case $Adminexit
If $admin = 1 Then
TCPStartup()
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
Else
TCPSend($ConnectedSocket, "5hu7d0wn")
If @error Then
MsgBox(4112, "Error", "TCPSend failed with WSA error: " & @error)
EndIf
EndIf
TCPShutdown()
EndIf
EndSwitch
WEnd
Der Error ist 10060 (Timeout)
Kennt sich jemand damit aus?