passt
thx
hab ich doch oben hingeschrieben^^
passt
thx
hab ich doch oben hingeschrieben^^
Wir sollten AutoIT FSK 16+ machen ![]()
shit der port, ich depp
thx
andere sache;
bei dem alten script wird der eintrag den der server speichert, automatisch ersetzt.
das heißt:
pc1 sendet: Ip: 10.110.23.32. Name : pc1.test.pc : time : 12:32:33
un wenn der gleiche pc wieder sendet
dann ersetzt er diesen eingetragenen string in der recieved.ini mit dem andern neuenstring des gleichen pcs.
das ist beim neuen nicht der fall why ![]()
pff wüsst ich so auf Kommando auch nicht, der Thread gehört eher in den Hilfe & Unterstützung bereich.
Würde da mal nachfragen ![]()
Gruß
Kev
Hi.
naja das müsste halt beim Startup anlaufen.
Bzw stimmt auch nicht ganz..du sagtest ja erst die Abfrage dann wird das System gestartet.
die Passwortabfrage ist seinerseits kein Ding.
[autoit]InputBox ( "Passwortabfrage", "Dieses Programm wird mit einem Passwort gesichert.Bitte geben sie nun ihr Passwort ein:" , "" , "*" ) <> "DEINPASSWORT"
[/autoit]jop und
[autoit]WinWait("Avira AntiVir Personal - Free Antivirus", "Setup von $#PRODUCTNAME$", 60)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]glaub auch nicht das des stimmt ![]()
WinWait("Avira AntiVir Personal - Free Antivirus", "Setup von" & $#PRODUCTNAME$, 60)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]eher so ca.
hey,
hatte das Problem, dass auf meinen Server nicht meherere Clienten connecten können.
Zur Hilfe hat mir Sprenger120
was gebastelt ![]()
bloß habe ich das Problem, das jetzt gar nichts mehr geht. Es kommt nichts am Server an.
Altes Script: (wo alles funktionierte
)
Server:
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <Array.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
DirCreate("C:\Message\")
Global $open
Global Const $MAXCON = 50;
Global $aClients[$MAXCON + 1][3]
$aClients[0][0] = $MAXCON
Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted, $ip, $host, $time
Local $msg, $recv
; Startet den TCP Service
;==============================================
TCPStartup()
; Erstellt einen lauschenden Port.
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)
; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
If $MainSocket = -1 Then Exit
; Erstellt eine GUI für Messages.
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState()
; Initialisiert eine Variable um eine Verbindung anzugeben
;==============================================
$ConnectedSocket = -1
; Wartet auf und akzeptiert eine Verbindung
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
; Bekommt die IP des verbundenen Clients
$szIP_Accepted = SocketToIP($ConnectedSocket)
; GUI Message Schleife
;==============================================
While 1
$msg = GUIGetMsg()
; GUI beendet
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Versucht Daten zu empfangen, bis zu 2048 bytes
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000)
; Aktualisiert das Input-Control mit dem, was wir empfangen haben.
;----------------------------------------------------------------
If $recv <> "" Then
GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
$ip = _StringBetween($recv, "IP Adresse: ", " Computername:")
$host = _StringBetween($recv, "Computername: ", " Zeit des Clienten:")
$time = StringRight($recv, ![]()
IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
EndIf
WEnd
If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
EndFunc ;==>Example
Func TCPAcc()
$hAcc = TCPAccept($MainSocket)
If $hAcc > 0 Then _AddClient($hAcc)
EndFunc ;==>TCPAcc
; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$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
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc ;==>SocketToIP
Client:
TCPStartup(); wird nur einmal aufgerufen
[/autoit] [autoit][/autoit] [autoit]Global $szIPADDRESS = "10.110.100.135"
Global $nPORT = 33891
Global $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
AdlibRegister('_client', 5000); rufe die func _client alle 5 sec auf
While 1
Sleep(100)
WEnd
Func _client ()
$szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
TCPSend($ConnectedSocket, $szData)
EndFunc ;==>_client
Func _quit()
TCPShutdown()
EndFunc ;==>_quit
Neues Script: ( mit mehrfach Verbindungen des Clients, welches nicht funktioniert^^ )
Server:
#include <Date.au3>
Opt("GUIOnEventMode", 1)
TCPStartup()
Global $IP = @IPAddress1
Global $Port = 2134
Global Const $MaxPendingConnection = 2 ;Maximal zugelassende Verbindungen
Global $Socket = TCPListen($IP, $Port)
Dim $Verbindungen[$MaxPendingConnection][4]
[/autoit] [autoit][/autoit] [autoit]For $x = 0 To UBound($Verbindungen) - 1 ;Array mit -1 befüllen
$Verbindungen[$x][0] = -1
$Verbindungen[$x][1] = -1
$Verbindungen[$x][2] = -1
$Verbindungen[$x][3] = -1
Next
$gui = GUICreate("Message - Server IP: " & $IP, 550, 200)
GUISetOnEvent(-3, "_Exit")
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState()
;[0] = SocketID ; [1] = IP ;[2]=Timer ;[3]=PC name
While 1
For $x = 0 To UBound($Verbindungen) - 1
If $Verbindungen[$x][0] = -1 Then
$Verbindungen[$x][0] = TCPAccept($Socket)
If $Verbindungen[$x][0] <> -1 Then
$Timer = TimerInit()
Do
$Resv = TCPRecv($Verbindungen[$x][0], 1024)
Until TimerDiff($Timer) >= 2000 Or $Resv <> ""
If $Resv <> "" Then
$Verbindungen[$x][1] = SocketToIP($Verbindungen[$x][0])
$Verbindungen[$x][3] = $Resv
ConsoleWrite("Neuer Client:" & $Verbindungen[$x][3] & @CRLF)
Else
TCPCloseSocket($Verbindungen[$x][0])
$Verbindungen[$x][0] = -1
$Verbindungen[$x][1] = -1
$Verbindungen[$x][2] = -1
$Verbindungen[$x][3] = -1
EndIf
EndIf
EndIf
$Resv = TCPRecv($Verbindungen[$x][0], 1024)
If @error And $Verbindungen[$x][0] <> -1 Then
ConsoleWrite("Client " & $Verbindungen[$x][3] & " hat den Server verlassen" & @CRLF)
TCPCloseSocket($Verbindungen[$x][0])
$Verbindungen[$x][0] = -1
$Verbindungen[$x][1] = -1
$Verbindungen[$x][2] = -1
$Verbindungen[$x][3] = -1
EndIf
If $Resv <> "" And $Verbindungen[$x][0] <> -1 Then
GUICtrlSetData($edit, _
$Verbindungen[$x][1] & " > " & $Resv & @CRLF & GUICtrlRead($edit))
$IP = $Verbindungen[$x][1]
$host = $Verbindungen[$x][3]
IniWrite(@ScriptDir & "\recieved.ini",$host,_Now() ,$Resv)
EndIf
Next
WEnd
; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$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
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc ;==>SocketToIP
Func _Exit()
For $x = 0 To UBound($Verbindungen) - 1
TCPCloseSocket($Verbindungen[$x][0])
Next
TCPShutdown()
Exit
EndFunc ;==>_Exit
Client:
TCPStartup(); wird nur einmal aufgerufen
[/autoit] [autoit][/autoit] [autoit]Global $szIPADDRESS = "10.110.100.135"
Global $nPORT = 33891
Global $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
TCPSend($ConnectedSocket,@ComputerName)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]AdlibRegister('_client', 5000); rufe die func _client alle 5 sec auf
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func _client ()
$szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
TCPSend($ConnectedSocket, $szData)
EndFunc ;==>_client
Func _quit()
TCPShutdown()
EndFunc ;==>_quit
Hoffe mal ihr könnt helfen
wär nett
Gruß
Kev
momentan noch den vom beispiel : 33891
ich brauch immer noch hilfe^^
sowas ähnliches, clienten senden alle 30 min ip, pc name, und aktuelle zeit an den server und der saved das dann in ne txt, das was du machen willst, hab ich schon lange
jetzt kann bloß immer nur ein client zum server senden und nicht mehrere.
hey,
hab mir jetzt mit dem Beispiel von TCPSend und TCPRecieve was gebaut.
jetzt möchte ich das mein Server mehrere Verbindungen mit Clients zulässt, hat mir da jemand ein Beispiel?
ein genaues Beispiel ^^, wie ich das am besten Umsetzen kann.
Gruß
Kev
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <Array.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
DirCreate("C:\Message\")
Global $open
Global Const $MAXCON = 50;
Global $aClients[$MAXCON + 1][3]
$aClients[0][0] = $MAXCON
Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted, $ip, $host, $time
Local $msg, $recv
; Startet den TCP Service
;==============================================
TCPStartup()
; Erstellt einen lauschenden Port.
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)
; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
If $MainSocket = -1 Then Exit
; Erstellt eine GUI für Messages.
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState()
; Initialisiert eine Variable um eine Verbindung anzugeben
;==============================================
$ConnectedSocket = -1
; Wartet auf und akzeptiert eine Verbindung
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
If $ConnectedSocket <> -1 Then _ArrayAdd($aUsers,$Temp)
; Bekommt die IP des verbundenen Clients
$szIP_Accepted = SocketToIP($ConnectedSocket)
; GUI Message Schleife
;==============================================
While 1
$msg = GUIGetMsg()
; GUI beendet
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Versucht Daten zu empfangen, bis zu 2048 bytes
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000)
; Aktualisiert das Input-Control mit dem, was wir empfangen haben.
;----------------------------------------------------------------
If $recv <> "" Then
GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
$ip = _StringBetween($recv, "IP Adresse: ", " Computername:")
$host = _StringBetween($recv, "Computername: ", " Zeit des Clienten:")
$time = StringRight($recv, ![]()
IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
EndIf
WEnd
If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
EndFunc ;==>Example
Func TCPAcc()
$hAcc = TCPAccept($MainSocket)
If $hAcc > 0 Then _AddClient($hAcc)
EndFunc ;==>TCPAcc
; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$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
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc ;==>SocketToIP
? ![]()
$aUsers = ????
Also ich hab mir das mal angeschaut.
GTA Spider hat mir auch nochmal was geschickt:
https://autoit.de/index.php?page=Thread&threadID=18653
Leider komm ich damit auch nicht weit.
Server:
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <Array.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
DirCreate("C:\Message\")
Global $open
Global Const $MAXCON = 50;
Global $aClients[$MAXCON + 1][3]
$aClients[0][0] = $MAXCON
Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted, $ip, $host, $time
Local $msg, $recv
; Startet den TCP Service
;==============================================
TCPStartup()
; Erstellt einen lauschenden Port.
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)
; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
If $MainSocket = -1 Then Exit
; Erstellt eine GUI für Messages.
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState()
; Initialisiert eine Variable um eine Verbindung anzugeben
;==============================================
$ConnectedSocket = -1
; Wartet auf und akzeptiert eine Verbindung
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
; Bekommt die IP des verbundenen Clients
$szIP_Accepted = SocketToIP($ConnectedSocket)
; GUI Message Schleife
;==============================================
While 1
$msg = GUIGetMsg()
; GUI beendet
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Versucht Daten zu empfangen, bis zu 2048 bytes
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000)
; Aktualisiert das Input-Control mit dem, was wir empfangen haben.
;----------------------------------------------------------------
If $recv <> "" Then
GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
$ip = _StringBetween($recv, "IP Adresse: ", " Computername:")
$host = _StringBetween($recv, "Computername: ", " Zeit des Clienten:")
$time = StringRight($recv, ![]()
IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
EndIf
WEnd
If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
EndFunc ;==>Example
Func TCPAcc()
$hAcc = TCPAccept($MainSocket)
If $hAcc > 0 Then _AddClient($hAcc)
EndFunc ;==>TCPAcc
; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$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
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc ;==>SocketToIP
Client:
TCPStartup(); wird nur einmal aufgerufen
[/autoit] [autoit][/autoit] [autoit]Global $szIPADDRESS = "10.110.100.135"
Global $nPORT = 33891
Global $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
AdlibRegister('_client', 5000); rufe die func _client alle 5 sec auf
While 1
Sleep(100)
WEnd
Func _client ()
$szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
TCPSend($ConnectedSocket, $szData)
EndFunc ;==>_client
Func _quit()
TCPShutdown()
EndFunc ;==>_quit
Ich kann wie gesagt, immer nur einen Clienten benutzen der zum Server sendet.
Nicht mehrere.
Gruß
Kev
anscheinend crashed dein programm und visual studio versucht das ding zu debugged.
was meistends voll der rotz ist
ich bezweifel auch das du autoITscripte mit visual studio debuggen kannst.
also ich hab mir den chat mal von gtaspider angeschaut.
da steht was mit tcpaccept hab das mal versucht umzuetzen aber iwie ![]()
ich komm net weiter.
funzt wunderbar ![]()
rep + ![]()
hab mir das jetz angepasst, problem ist, wenn der server bei mir liegt, und ich 2 weitere rechner in der domain hab, kann nur einer senden, mehrfach senden ist nicht.
also von mehreren clienten.
kann man das iwie ändern? das muss gehn ![]()
Then we get a Error: subscript used with non. Aqrray var. Error
Line: 85
[autoit]IniWrite(@Scriptdir & "\recieved.ini", $ip[0], $host[0], $time)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]IniWrite(@Scriptdir & "\recieved.ini", $ip^ERROR
string.au3 ist drin
sagt $ip ist nicht deklariert ![]()
Kay, dann muss ich ja $recv splitten weil da ja net nur die ip drin ist.
das heißt:
$IP = _StringBetween($recv , '" IP Adresse:"', '" Computername')
[/autoit]sagter aber $IP wär net deklariert ![]()
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <Array.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
dircreate("C:\Message\")
global $open
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv
; Startet den TCP Service
;==============================================
TCPStartup()
; Erstellt einen lauschenden Port.
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT)
; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
If $MainSocket = -1 Then Exit
; Erstellt eine GUI für Messages.
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState()
; Initialisiert eine Variable um eine Verbindung anzugeben
;==============================================
$ConnectedSocket = -1
; Wartet auf und akzeptiert eine Verbindung
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
; Bekommt die IP des verbundenen Clients
$szIP_Accepted = SocketToIP($ConnectedSocket)
; GUI Message Schleife
;==============================================
While 1
$msg = GUIGetMsg()
; GUI beendet
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Versucht Daten zu empfangen, bis zu 2048 bytes
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000)
; Aktualisiert das Input-Control mit dem, was wir empfangen haben.
;----------------------------------------------------------------
If $recv <> "" Then
GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
$IP = _StringBetween($recv , '" IP Adresse:"', '" Computername')
msgbox(1,"",$IP)
EndIf
Wend
If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
EndFunc ;==>Example
; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$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
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc ;==>SocketToIP
und client:
TCPStartup(); wird nur einmal aufgerufen
[/autoit] [autoit][/autoit] [autoit]Global $szIPADDRESS = "192.168.245.128"
Global $nPORT = 33891
Global $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
AdlibRegister('_client', 5000); rufe die func _client alle 5 sec auf
While 1
Sleep(100)
WEnd
Func _client ()
$szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
TCPSend($ConnectedSocket, $szData)
EndFunc ;==>_client
Func _quit()
TCPShutdown()
EndFunc ;==>_quit
Ich will aber kein Jens sein
ich bin ein Kev ! ![]()
doofe Umfrage da
![]()