Ich habe im client ein edit feld dessen text dann auf dem server gespeichert werden soll als datei.
Es kommt keine Fehlermeldung, es passiert einfach nur, garnichts.
Ich hoffe ihr lönnt mir helfen.
Ich bekomme beim client immer den Fehler 10038 heißt:
WSAENOTSOCK
10038
Socket operation on nonsocket.
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
10038
Socket operation on nonsocket.
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
Hier das Client script:
Code:
;##### Client Skript ##### ;####GUI#### #include <GUIConstants.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> #include <File.au3> $cfg = "Config_2.cfg" $agb_1 = "AGB.txt" $kath1 = FileReadLine($cfg, 3) $kath2 = FileReadLine($cfg, 4) $kath3 = FileReadLine($cfg, 5) $agb = FileRead($agb_1) $Form1 = GUICreate("Support", 805, 385, 192, 124) $Nachricht = GUICtrlCreateEdit("", 12, 8, 409, 321) GUICtrlSetData(-1, "Nachricht") GUICtrlSetCursor(-1, 5) GUICtrlSetState(-1, $GUI_DISABLE) $Button1 = GUICtrlCreateButton("Senden", 12, 344, 123, 25, $WS_GROUP) GUICtrlSetCursor(-1, 0) GUICtrlSetState(-1, $GUI_DISABLE) $Button2 = GUICtrlCreateButton("Alles löschen", 152, 344, 123, 25, $WS_GROUP) GUICtrlSetCursor(-1, 0) GUICtrlSetState(-1, $GUI_DISABLE) $Button3 = GUICtrlCreateButton("Beenden", 296, 344, 123, 25, $WS_GROUP) GUICtrlSetCursor(-1, 0) $Input1 = GUICtrlCreateInput("Ig. Name", 448, 20, 121, 21) GUICtrlSetCursor(-1, 5) GUICtrlSetState(-1, $GUI_DISABLE) $Input2 = GUICtrlCreateInput("E-mail", 448, 72, 121, 21) GUICtrlSetCursor(-1, 5) GUICtrlSetState(-1, $GUI_DISABLE) $Radio1 = GUICtrlCreateRadio("Kathegorie 1", 440, 112, 113, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Radio2 = GUICtrlCreateRadio("Kathegorie 2", 564, 112, 113, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Radio3 = GUICtrlCreateRadio("Kathegorie 3", 680, 112, 113, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Button4 = GUICtrlCreateButton("Bestätigen", 608, 44, 123, 25, $WS_GROUP) GUICtrlSetCursor(-1, 0) GUICtrlSetState(-1, $GUI_DISABLE) $Tab1 = GUICtrlCreateTab(436, 156, 353, 213) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT) $TabSheet1 = GUICtrlCreateTabItem("Kathegorien") $Label1 = GUICtrlCreateLabel($kath1, 448, 204, 103, 17) GUICtrlSetBkColor(-1, 0xFFFFFF) $Label2 = GUICtrlCreateLabel($kath2, 448, 240, 171, 17) GUICtrlSetBkColor(-1, 0xFFFFFF) $Label3 = GUICtrlCreateLabel($kath3, 448, 280, 337, 17) GUICtrlSetBkColor(-1, 0xFFFFFF) $TabSheet2 = GUICtrlCreateTabItem("AGB") $Text = GUICtrlCreateEdit("hey", 444, 184, 333, 177) GUICtrlSetData(-1, $agb) GUICtrlCreateTabItem("") GUISetState(@SW_SHOW) ;####Variablen#### $Port = "11989" $ServerIP = @IPAddress1 ;FileReadLine($cfg, 1) $log = "log.txt" $time = String("[" & @HOUR & ":" & @MIN & ":" & @SEC & " ; " & @MDAY & "." & @MON & "." & @YEAR & "]") $user = GUICtrlRead($Input1) $email = GUICtrlRead($Input2) $ConnectedSocket = TCPConnect($ServerIP, $Port) $Data = GUICtrlRead($Nachricht) $file = "value.txt" $value = FileReadLine($file, 1) TCPStartup() If @error Then MsgBox(4112, "Error", "TCP Connect failed with WSA error: " & @error) _FileWriteToLine($log, 1, $time & "TCP konnte nicht gestartet werden") EndIf TCPConnect($ServerIP, $Port) If @error Then MsgBox(16, "Info", "Es konnte keine Verbindung mit dem Server hergestellt werden! Fehler: " & @error) _FileWriteToLine($log, 1, $time & "Es konnte keine Verbindung mit dem Server hergestellt werden." & @error) Else _FileWriteToLine($log, 1, $time & "Verbindung mit dem Server hergestellt") GUICtrlSetState($Button1, $GUI_ENABLE) GUICtrlSetState($Button2, $GUI_ENABLE) GUICtrlSetState($Button4, $GUI_ENABLE) GUICtrlSetState($Input1, $GUI_ENABLE) GUICtrlSetState($Input2, $GUI_ENABLE) GUICtrlSetState($Nachricht, $GUI_ENABLE) GUICtrlSetState($Radio1, $GUI_ENABLE) GUICtrlSetState($Radio2, $GUI_ENABLE) GUICtrlSetState($Radio3, $GUI_ENABLE) EndIf While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE FileDelete($value) TCPShutdown() Exit If FileExists($log) = True Then Sleep(1) ElseIf FileExists($log) = False Then FileWrite($log, $time & "Log-Datei erstellt") _FileWriteToLine($log, 1, $time & "Client gestartet") EndIf Case $Button1 Call("_send") Case $Button2 Call("_delete") Case $Button3 Call("_exit") Case $Button4 Call("continue") EndSwitch WEnd ;__________________________________________ Ende GUI ________________________________________________________________________ ;####Clientscript#### Func _exit() FileDelete($value) TCPShutdown() Exit EndFunc ;==>_exit If FileExists($log) = True Then Sleep(1) ElseIf FileExists($log) = False Then FileWrite($log, $time & "Log-Datei erstellt") _FileWriteToLine($log, 1, $time & "Client gestartet") EndIf Func continue() Sleep(100) EndFunc ;==>continue Func _send() While 1 If FileExists($file) = True Then Sleep(1) Else FileWrite($file, "0") EndIf Local $after = String("SendMail/" & $Data & "/" & $user & "/" & $email) If $Data = "" Then _FileWriteToLine($file, 1, "1") MsgBox(16, "Info", "Du hast vergessen deinem Ingame-Namen einzugeben!") ExitLoop EndIf If $user = "" Then _FileWriteToLine($file, 1, "1") MsgBox(16, "Info", "Du hast vergessen deinem Ingame-Namen einzugeben!") ExitLoop EndIf If $email = "" Then _FileWriteToLine($file, 1, "1") MsgBox(16, "Info", "Du hast vergessen deine e-mail Adresse einzugeben!") ExitLoop EndIf Sleep(5000) If $value = 0 Then TCPSend($ConnectedSocket, $after) _FileWriteToLine($log, 1, $time & "Nachricht gesendet!") GUICtrlSetData($Nachricht, "Nachricht gesendet!") EndIf If @error Then _FileWriteToLine($log, 1, $time & "Nachricht konnte nicht gesendet werden!") GUICtrlSetData($Nachricht, "Nachricht konnte nicht gesendet werden!" & @error) ExitLoop EndIf WEnd EndFunc ;==>_send Func _delete() GUICtrlSetData($Nachricht, "") EndFunc ;==>_delete ;#####Fehler:#######
Dann hier noch das serverscript:
Code:
; ##### Server ##### sdk #include <File.au3> $cfg = "Config.cfg" $ServerIP = @IPAddress1 $Port = "11989" $time = String("[" & @HOUR & ":" & @MIN & ":" & @SEC & " ; " & @MDAY & "." & @MON & "." & @YEAR & "]") $txt = "messagename.txt" $a = FileReadLine($txt, 3) $c = FileReadLine($txt, 3) $b = String($c) HotKeySet("{F5}", "_exit") Func _exit() Exit EndFunc ;==>_exit Func name() $a = $a + 1 _FileWriteToLine($txt, 3, $a) EndFunc ;==>name=>name If FileExists("log.txt") = True Then Sleep(1) ElseIf FileExists("log.txt") = False Then FileWrite("log.txt", $time & "Log-Datei erstellt") EndIf If FileExists($txt) = False Then FileWrite($txt, "#### AUf keinen Fall löschen!!!!!####" & @CRLF & @CRLF & "1") _FileWriteToLine("log.txt", 1, $time & "MsgName liste wurde erstellt! NICHT LÖSCHEN!!!!!") EndIf TCPStartup() $MainSocket = TCPListen($ServerIP, $Port) If @error Then MsgBox(16, "Info", "Das Programm hat ein problem und konnte nicht gestartet werden!" & @CRLF & "Es endet jetzt. " & @error) Exit EndIf _FileWriteToLine("log.txt", 1, $time & "Server wurde gestartet!") $ConnectedSocket = -1 Do $ConnectedSocket = TCPAccept($MainSocket) Until $ConnectedSocket <> -1 While 1 $recv = TCPRecv($ConnectedSocket, 2048) If @error Then ExitLoop If $recv <> "" Then _FileWriteToLine("log.txt", 1, $time & "Befehl" & $recv & "wurde empfangen") _CommandToAction($recv) EndIf WEnd If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket) ;####Befehlsfunktionen:#### Func _CommandToAction($command) $ar = StringSplit($command, "/") Switch $ar[1] Case "" _FileWriteToLine("log.txt", 1, $time & "Kein Befehl ("")") Case "SendMail" TrayTip("lol", "sendmail [x]", 3) $nachricht = String($ar[2] & @CRLF & $ar[3] & @CRLF & $ar[4]) Call("name") sleep (5000) $case1 = FileWrite($b, $nachricht) If $case1 = 0 Then _FileWriteToLine("log.txt", 1, $time & "msg konnte nicht gespeichert werden") TCPSend($ConnectedSocket, "Deine Nachricht konnte nicht gespeichert werden.") ElseIf $case1 = 1 Then _FileWriteToLine("log.txt", 1, $time & "Neue Nachricht wurde hinzugefügt (" & $b & ")") TCPSend($ConnectedSocket, "Deine Nachricht wurde Erfolgreich gespeichert und wird so bald es geht bearbeitet.") EndIf EndSwitch EndFunc ;==>_CommandToAction
Ich suche auserdem noch jemand der sich sehr gut mit autoit auskennt und mir helfen kann wenn ich Probs. mit meinen Scripts habe.
€das mit $data hab ich bereits geändert, geht aber immernoch nicht...
€2: Gelöst kann geclosed werden, hab $connetedsocket falsch definiert