Hi Leute,
ich habe ein kleines Script geschrieben um jemandem im Netzwerk mitzuteilen, dass ein Fax angekommen ist. Jetzt funktioniert nur die Sendenfunktion nicht. Es kommt der o.g. Fehler (Socket ist nicht vorhanden
)
Vielleicht seht ihr ja den Fehler, ich hab ihn nicht gefunden:
Zum senden:
Spoiler anzeigen
Global $1 = 1
Global $IP = InputBox("IP", "IP des anderen:", "192.168.0.55")
TCPStartup()
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
Global $Connect = TCPConnect($IP, 6221)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
While $1=1
$Text = InputBox("Text", "Die Nachricht")
If @error Then
$1=0
EndIf
If $Text <> "" Then
Global $Socket = TCPListen(@IPAddress1, 6222)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
TCPSend($Socket, $Text)
If @error Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
EndIf
WEnd
Zum empfangen:
Spoiler anzeigen
#include <iNet.au3>
TCPStartup()
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
Global $Socket = TCPListen(@IPAddress1, 6221)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
While 1
Global $SMsg = TCPAccept($Socket)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
If $SMsg >0 Then
Global $Msg = TCPRecv($SMsg, 9999)
If @error = -1 Then
MsgBox(0, "Error", "Folgender Fehler ist aufgetreten:" & @error)
EndIf
If $Msg <> "" Then
Global $eingehendeIP = SockettoIP($SMsg)
Global $name = _TCPIpToName($eingehendeIP)
MsgBox(0, "Nachricht", $name & " schrieb folgendes an dich:" & @CRLF & $Msg)
EndIf
EndIf
WEnd
#Region Func
Func SocketToIP($SHOCKET) ;== Ip des Senders erhalten s. Hilfe "Function Reference TCPRecv"
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
$sockaddr = 0
Return $aRet
EndFunc
#EndRegion Func
Danke für die Hilfe