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






