1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Kev

Beiträge von Kev

  • TCP Problem

    • Kev
    • 24. März 2010 um 14:34

    passt ^^ thx

    hab ich doch oben hingeschrieben^^

  • Tasten virtuell drücken

    • Kev
    • 24. März 2010 um 13:53

    Wir sollten AutoIT FSK 16+ machen ^^

  • TCP Problem

    • Kev
    • 24. März 2010 um 12:33

    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 :(

  • Passwor eingabe bei Computer start

    • Kev
    • 24. März 2010 um 10:43

    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

  • Passwor eingabe bei Computer start

    • Kev
    • 24. März 2010 um 10:32

    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]
  • Autoit installation für Anti-Vir 10 wird nicht beendet

    • Kev
    • 24. März 2010 um 10:26

    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 ^^

    [autoit]

    WinWait("Avira AntiVir Personal - Free Antivirus", "Setup von" & $#PRODUCTNAME$, 60)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    eher so ca.

  • TCP Problem

    • Kev
    • 24. März 2010 um 10:10

    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 :P )

    Server:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <String.au3>
    #include <Array.au3>
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;==============================================
    ;==============================================
    ; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
    ;==============================================
    ;==============================================
    DirCreate("C:\Message\")

    [/autoit] [autoit][/autoit] [autoit]

    Global $open
    Global Const $MAXCON = 50;

    [/autoit] [autoit][/autoit] [autoit]

    Global $aClients[$MAXCON + 1][3]
    $aClients[0][0] = $MAXCON

    [/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, $ip, $host, $time
    Local $msg, $recv

    [/autoit] [autoit][/autoit] [autoit]

    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

    [/autoit] [autoit][/autoit] [autoit]

    ; Erstellt einen lauschenden Port.
    ; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
    ;==============================================
    $MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)

    [/autoit] [autoit][/autoit] [autoit]

    ; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
    If $MainSocket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI für Messages.
    ;==============================================
    $GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
    $edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Initialisiert eine Variable um eine Verbindung anzugeben
    ;==============================================
    $ConnectedSocket = -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Wartet auf und akzeptiert eine Verbindung
    ;==============================================
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Bekommt die IP des verbundenen Clients
    $szIP_Accepted = SocketToIP($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Message Schleife
    ;==============================================
    While 1
    $msg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI beendet
    ;--------------------
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    ; Versucht Daten zu empfangen, bis zu 2048 bytes
    ;----------------------------------------------------------------
    $recv = TCPRecv($ConnectedSocket, 30000)

    [/autoit] [autoit][/autoit] [autoit]

    ; 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, 8)
    IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    TCPShutdown()
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $sockaddr = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==>SocketToIP

    [/autoit]

    Client:

    Spoiler anzeigen
    [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _client ()
    $szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
    TCPSend($ConnectedSocket, $szData)
    EndFunc ;==>_client

    [/autoit] [autoit][/autoit] [autoit]

    Func _quit()
    TCPShutdown()
    EndFunc ;==>_quit

    [/autoit]


    Neues Script: ( mit mehrfach Verbindungen des Clients, welches nicht funktioniert^^ )

    Server:

    Spoiler anzeigen
    [autoit]

    #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)

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate("Message - Server IP: " & $IP, 550, 200)
    GUISetOnEvent(-3, "_Exit")
    $edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;[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 <> ""

    [/autoit] [autoit][/autoit] [autoit]

    If $Resv <> "" Then
    $Verbindungen[$x][1] = SocketToIP($Verbindungen[$x][0])
    $Verbindungen[$x][3] = $Resv

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    ; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
    ;----------------------------------------------------------------------
    Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $sockaddr = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==>SocketToIP

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    For $x = 0 To UBound($Verbindungen) - 1
    TCPCloseSocket($Verbindungen[$x][0])
    Next
    TCPShutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]


    Client:

    Spoiler anzeigen
    [autoit]

    TCPStartup(); wird nur einmal aufgerufen

    [/autoit] [autoit][/autoit] [autoit]

    Global $szIPADDRESS = "10.110.100.135"
    Global $nPORT = 33891
    Global $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    Func _client ()
    $szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
    TCPSend($ConnectedSocket, $szData)
    EndFunc ;==>_client

    [/autoit] [autoit][/autoit] [autoit]

    Func _quit()
    TCPShutdown()
    EndFunc ;==>_quit

    [/autoit]

    Hoffe mal ihr könnt helfen :) wär nett

    Gruß

    Kev

  • TcP - mehrere Client Verbindungen

    • Kev
    • 22. März 2010 um 12:15

    momentan noch den vom beispiel : 33891

    ich brauch immer noch hilfe^^

  • TcP - mehrere Client Verbindungen

    • Kev
    • 22. März 2010 um 11:59

    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.

  • TcP - mehrere Client Verbindungen

    • Kev
    • 22. März 2010 um 10:10

    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

  • Server - Client tcp

    • Kev
    • 18. März 2010 um 15:23
    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <String.au3>
    #include <Array.au3>
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;==============================================
    ;==============================================
    ; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
    ;==============================================
    ;==============================================
    DirCreate("C:\Message\")

    [/autoit] [autoit][/autoit] [autoit]

    Global $open
    Global Const $MAXCON = 50;

    [/autoit] [autoit][/autoit] [autoit]

    Global $aClients[$MAXCON + 1][3]
    $aClients[0][0] = $MAXCON

    [/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, $ip, $host, $time
    Local $msg, $recv

    [/autoit] [autoit][/autoit] [autoit]

    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

    [/autoit] [autoit][/autoit] [autoit]

    ; Erstellt einen lauschenden Port.
    ; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
    ;==============================================
    $MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)

    [/autoit] [autoit][/autoit] [autoit]

    ; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
    If $MainSocket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI für Messages.
    ;==============================================
    $GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
    $edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Initialisiert eine Variable um eine Verbindung anzugeben
    ;==============================================
    $ConnectedSocket = -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Wartet auf und akzeptiert eine Verbindung
    ;==============================================
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1
    If $ConnectedSocket <> -1 Then _ArrayAdd($aUsers,$Temp)

    [/autoit] [autoit][/autoit] [autoit]

    ; Bekommt die IP des verbundenen Clients
    $szIP_Accepted = SocketToIP($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Message Schleife
    ;==============================================
    While 1
    $msg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI beendet
    ;--------------------
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    ; Versucht Daten zu empfangen, bis zu 2048 bytes
    ;----------------------------------------------------------------
    $recv = TCPRecv($ConnectedSocket, 30000)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; 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, 8)
    IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    TCPShutdown()
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $sockaddr = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==>SocketToIP

    [/autoit]


    ? ;(

  • Server - Client tcp

    • Kev
    • 18. März 2010 um 15:00

    $aUsers = ????

  • Server - Client tcp

    • Kev
    • 18. März 2010 um 12:52

    Also ich hab mir das mal angeschaut.
    GTA Spider hat mir auch nochmal was geschickt:

    https://autoit.de/index.php?page=Thread&amp;threadID=18653

    Leider komm ich damit auch nicht weit.

    Server:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <String.au3>
    #include <Array.au3>
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;==============================================
    ;==============================================
    ; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
    ;==============================================
    ;==============================================
    DirCreate("C:\Message\")

    [/autoit] [autoit][/autoit] [autoit]

    Global $open
    Global Const $MAXCON = 50;

    [/autoit] [autoit][/autoit] [autoit]

    Global $aClients[$MAXCON + 1][3]
    $aClients[0][0] = $MAXCON

    [/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, $ip, $host, $time
    Local $msg, $recv

    [/autoit] [autoit][/autoit] [autoit]

    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

    [/autoit] [autoit][/autoit] [autoit]

    ; Erstellt einen lauschenden Port.
    ; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
    ;==============================================
    $MainSocket = TCPListen($szIPADDRESS, $nPORT, $MAXCON)

    [/autoit] [autoit][/autoit] [autoit]

    ; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
    If $MainSocket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI für Messages.
    ;==============================================
    $GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
    $edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Initialisiert eine Variable um eine Verbindung anzugeben
    ;==============================================
    $ConnectedSocket = -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Wartet auf und akzeptiert eine Verbindung
    ;==============================================
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Bekommt die IP des verbundenen Clients
    $szIP_Accepted = SocketToIP($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Message Schleife
    ;==============================================
    While 1
    $msg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI beendet
    ;--------------------
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    ; Versucht Daten zu empfangen, bis zu 2048 bytes
    ;----------------------------------------------------------------
    $recv = TCPRecv($ConnectedSocket, 30000)

    [/autoit] [autoit][/autoit] [autoit]

    ; 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, 8)
    IniWrite(@ScriptDir & "\recieved.ini", $ip[0], $host[0], $time)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    TCPShutdown()
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $sockaddr = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==>SocketToIP

    [/autoit]


    Client:


    Spoiler anzeigen
    [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _client ()
    $szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
    TCPSend($ConnectedSocket, $szData)
    EndFunc ;==>_client

    [/autoit] [autoit][/autoit] [autoit]

    Func _quit()
    TCPShutdown()
    EndFunc ;==>_quit

    [/autoit]

    Ich kann wie gesagt, immer nur einen Clienten benutzen der zum Server sendet.
    Nicht mehrere.

    Gruß

    Kev

  • eigener webbrowser

    • Kev
    • 17. März 2010 um 16:39

    anscheinend crashed dein programm und visual studio versucht das ding zu debugged.
    was meistends voll der rotz ist :D ich bezweifel auch das du autoITscripte mit visual studio debuggen kannst.

  • Server - Client tcp

    • Kev
    • 17. März 2010 um 16:04

    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.

  • Server - Client tcp

    • Kev
    • 17. März 2010 um 12:30

    funzt wunderbar ;)

    rep + :D

    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 ;(

  • Server - Client tcp

    • Kev
    • 17. März 2010 um 11:16

    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

  • Server - Client tcp

    • Kev
    • 17. März 2010 um 10:58

    string.au3 ist drin

    sagt $ip ist nicht deklariert ;)

  • Server - Client tcp

    • Kev
    • 17. März 2010 um 09:50

    Kay, dann muss ich ja $recv splitten weil da ja net nur die ip drin ist.
    das heißt:

    [autoit]

    $IP = _StringBetween($recv , '" IP Adresse:"', '" Computername')

    [/autoit]

    sagter aber $IP wär net deklariert ^^

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <String.au3>
    #include <Array.au3>
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;==============================================
    ;==============================================
    ; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
    ;==============================================
    ;==============================================
    dircreate("C:\Message\")

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

    [/autoit] [autoit][/autoit] [autoit]

    ; Erstellt einen lauschenden Port.
    ; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
    ;==============================================
    $MainSocket = TCPListen($szIPADDRESS, $nPORT)

    [/autoit] [autoit][/autoit] [autoit]

    ; Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
    If $MainSocket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI für Messages.
    ;==============================================
    $GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
    $edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Initialisiert eine Variable um eine Verbindung anzugeben
    ;==============================================
    $ConnectedSocket = -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Wartet auf und akzeptiert eine Verbindung
    ;==============================================
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Bekommt die IP des verbundenen Clients
    $szIP_Accepted = SocketToIP($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Message Schleife
    ;==============================================
    While 1
    $msg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI beendet
    ;--------------------
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    ; Versucht Daten zu empfangen, bis zu 2048 bytes
    ;----------------------------------------------------------------
    $recv = TCPRecv($ConnectedSocket, 30000)

    [/autoit] [autoit][/autoit] [autoit]

    ; 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)

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    Wend

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)

    [/autoit] [autoit][/autoit] [autoit]

    TCPShutdown()
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit]

    ; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
    ;----------------------------------------------------------------------
    Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $sockaddr = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==>SocketToIP

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    und client:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _client ()
    $szData = "IP Adresse: " & @IPAddress1 & " Computername: " & @ComputerName & " Zeit des Clienten: " & @HOUR & ":" & @MIN & ":" & @SEC
    TCPSend($ConnectedSocket, $szData)
    EndFunc ;==>_client

    [/autoit] [autoit][/autoit] [autoit]

    Func _quit()
    TCPShutdown()
    EndFunc ;==>_quit

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Hey ^^

    • Kev
    • 17. März 2010 um 08:55

    Ich will aber kein Jens sein ;(
    ich bin ein Kev ! :whistling:

    doofe Umfrage da :thumbdown: :D

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™