TCP Hilfe

  • Hallo,
    hab ein Problem mit TCP
    es will einfach nicht funktionieren.

    Server:

    [autoit]

    TCPStartup()
    $test = Tcplisten ("127.0.0.1",55555)
    $con = -1

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

    Do
    $con = TCPAccept($test)
    Until $con <> -1

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

    While 1
    $get = Tcprecv ($con,2048)

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

    If $get = "shut" Then
    Shutdown ("-s")
    Elseif $get = "block" Then
    BlockInput (1)
    Elseif $get = "unblock" Then
    BlockInput (0)
    Elseif $get = "close" Then
    Exit
    Elseif $get = "mess" Then
    $get = Tcprecv ($con,2048)
    MsgBox (0,"Bemerkung",$get)
    EndIf
    Wend
    Exit

    [/autoit]


    Ist natürlich auf Localhost gerichtet.

    Client

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiIPAddress.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Tcpstartup()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Administrator", 392, 213, 192, 124)
    $Label1 = GUICtrlCreateLabel("IP- Adresse des zu steuernden PC's", 8, 8, 217, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $IPAddress1 = _GUICtrlIpAddress_Create($Form1, 248, 8, 130, 21)
    _GUICtrlIpAddress_Set($IPAddress1, "0.0.0.0")
    $Radio1 = GUICtrlCreateRadio("Eingaben blocken", 24, 48, 113, 17)
    $Radio2 = GUICtrlCreateRadio("Eingaben freigeben", 24, 72, 113, 17)
    $Radio3 = GUICtrlCreateRadio("PC herunterfahren", 24, 96, 113, 17)
    $Radio4 = GUICtrlCreateRadio("Nachricht senden", 24, 120, 113, 17)
    $Radio5 = GUICtrlCreateRadio("Server beenden", 24, 144, 113, 17)
    $Group1 = GUICtrlCreateGroup("Möglichkeiten", 8, 32, 137, 137)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $InputBox1 = GUICtrlCreateInput("InputBox1", 216, 120, 121, 21)
    GUICtrlsetdata ($InputBox1,"")
    $Label2 = GUICtrlCreateLabel("Nachricht:", 152, 120, 63, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Senden", 8, 176, 371, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Verbinden", 248, 32, 131, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    $main = TCPConnect(GUIctrlread($IPAddress1),55555)
    If $main = -1 Then
    MsgBox(0,"Achtung","Verbindung fehlgeschlagen")
    EndIf
    Case $Radio1
    $info = "block"
    Case $Radio2
    $info = "unblock"
    Case $Radio3
    $info = "shut"
    Case $Radio4
    $info = "mess"
    Case $Radio5
    $info = "close"
    Case $Button1
    TCPSend ($main,$info)
    If $Radio4 = 1 Then
    TCPSend ($main,GUIctrlread ($InputBox1)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Warum funktioniert das nicht?

    Lg

  • Ich würde mal anstat 127.0.0.1 deine netzwerk IP vom PC probieren.
    Bei mir hat das nämlich mit

    127.0.0.1 auch nie wirklich getan und dan auch die firewall mal abschlaten wür den test und dna später halt die passende portfreigabe einstellen

    EDIT: nich funktionieren is klar aber was genau nich hinhaut kannst du ja schon sagen

  • @IPAddress1
    Is schon okey aber um sicher zu gehen würd ich sagen mal lieber die IP als string reinsetzen
    @IPAddress1 hat bei mir auch öfters mal 127.0.0.1 ausgegeben und was dan?

    Also der @error vom TCPListen würd mich jetz auch interessieren weil du prüfst den garnich wenn es da ein fehler gibt läuft dein "Server" einfach munter weiter bekommt aber keien befehle

  • mit @IPAddress1 hats funktioniert, jetz nurnoch übers Netzwerk hinbekommen und dass mit der Nachricht geht auch nochnicht so wirklich
    (ist mein erstes mit TCP)

    Danke Lg

    Nächstes Problem, es geht einfach nicht übers Netzwerk.
    Welcher Port ist gut?

    Einmal editiert, zuletzt von Skizzi (14. Mai 2010 um 12:30)

  • Tehoretisch jeder port aber deine portnummer is okey.

    wenn es nicht übers netzwerk geht is die antwort klar der port muss in die firewall als TCP eingestellt werden und das zwar am Server PC aber es schade nicht wenn beide rechner den port offen haben.

    BZW für nen test kannste auch beide firewalls auschlaten.. is ja nich so als ob vor deiner wall 100.000 Hacker nur darauf warten das du se aus machst :P