TCP Hilfe dringend benötigt!!!

  • Hi, Leute ich hab mal wieder eine Frage... Wie kann ich bei dieser MsgBox per TCP den Text verändern???
    Ist nur ein Testskript damit ich bei meinem "wirklichen" Projekt weiter komme.... möchte mal probiern ob ich nen verngesteuerten Task-Mgr hinbekomme :D

    LINIE 75

    Spoiler anzeigen

    LINIE 75

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <String.au3>

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

    Opt('MustDeclareVars', 1)

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

    ;==============================================
    ;==============================================
    ;SERVER!! Start Me First !!!!!!!!!!!!!!!
    ;==============================================
    ;==============================================

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

    ; Initialize a variable to represent a connection
    ;==============================================
    Global $ConnectedSocket = -1

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

    Global $MainSocket

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

    Example()

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

    Func Example()
    Local $g_IP, $RogueSocket, $GOOEY, $edit, $input, $butt, $msg
    Local $ret, $recv

    $g_IP = @IPAddress1

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

    ; Start The TCP Services
    ;==============================================
    TCPStartup()

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

    ; Create a Listening "SOCKET"
    ;==============================================
    $MainSocket = TCPListen($g_IP, 33891, 100)
    If $MainSocket = -1 Then Exit
    $RogueSocket = -1

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

    ; GUI Message Loop
    ;==============================================
    While 1
    If $RogueSocket > 0 Then
    $recv = TCPRecv($RogueSocket, 512)
    If Not @error Then
    TCPCloseSocket($RogueSocket)
    $RogueSocket = -1
    EndIf
    EndIf

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

    ; If no connection look for one
    ;--------------------
    If $ConnectedSocket = -1 Then
    $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket < 0 Then
    $ConnectedSocket = -1
    Else
    MsgBox(1,"","Connected with a Client")
    EndIf

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

    ; If connected try to read some data
    ;--------------------
    Else
    ; EXECUTE AN UNCONDITIONAL ACCEPT IN CASE ANOTHER CLIENT TRIES TO CONNECT
    ;----------------------------------------------------------------
    $RogueSocket = TCPAccept($MainSocket)
    If $RogueSocket > 0 Then
    TCPSend($RogueSocket, "~~rejected")
    EndIf

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

    $recv = TCPRecv($ConnectedSocket, 512)

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

    If StringInStr($recv,"> test") Then
    MsgBox(64,"TEST","TEST")

    ElseIf StringInStr($recv,"> hoho") Then
    MsgBox(1,"TEST1","TEXT") ;; <--- WIE KANN ICH DEN TEXT DIESER MSGBOX PER TCP ÄNDERN????

    ElseIf @error Or $recv = "~~bye" Then
    ; ERROR OCCURRED, CLOSE SOCKET AND RESET ConnectedSocket to -1
    ;----------------------------------------------------------------
    WinSetTitle($GOOEY, "", "my server - Client Disconnected")
    TCPCloseSocket($ConnectedSocket)
    $ConnectedSocket = -1
    EndIf
    EndIf
    WEnd
    EndFunc ;==>Example

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

    Func OnAutoItExit()
    ;ON SCRIPT EXIT close opened sockets and shutdown TCP service
    ;----------------------------------------------------------------------
    If $ConnectedSocket > -1 Then
    TCPSend($ConnectedSocket, "~~bye")
    Sleep(2000)
    TCPRecv($ConnectedSocket, 512)
    TCPCloseSocket($ConnectedSocket)
    EndIf
    TCPCloseSocket($MainSocket)
    TCPShutdown()
    EndFunc ;==>OnAutoItExit

    [/autoit]

    2 Mal editiert, zuletzt von sl4y3r (23. August 2008 um 00:05)

  • Öhm... nö ich möchte einfach in dem beiligenden Skript folgendes machen:

    - Per TCP MsgBox Aufrufen
    - MsgBox sollte eigenen text haben den ich per tcp sende
    und das wars schon...

    doch ich check irgndwie nich wi das gehen soll... :D

  • Wie Xenobiologist schon sagte schau dir die beispiele an, in der autoit hilfe gibts auch genügent beispiele die dein problem ziemlich schnell lösen sollten.

  • :( hab irngendwie nichts gefunden

    hatt vielleicht doch noch jemand ne idee wie das gehen soll??

  • Senden

    [autoit]

    $Empfaenger_IP = "192.168.2.10"
    $Port = 33891
    $Text = InputBox("Text senden","Text eingeben, der gesendet werden soll","")
    If @error = 1 Then Exit

    TCPStartUp()

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

    $ConnectedSocket = TCPConnect($Empfaenger_IP, $Port)
    TCPSend($ConnectedSocket, $Text)

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

    TCPShutdown ()

    [/autoit]

    Empfangen

    [autoit]

    $Port = 33891
    TCPStartUp()

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

    While 1
    $MainSocket = TCPListen(@IPAddress1, $Port, 100 )

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

    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

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

    If $ConnectedSocket <> -1 Then
    $recv = TCPRecv($ConnectedSocket, 10)
    MsgBox(0,"Empfangen",$recv)
    TCPShutdown()
    TCPStartUp()
    EndIf

    Wend

    [/autoit]
  • Sorry das ich diesne alten Thread noch einmal ausgrabe, aber habe kleine Problem unter Vista damit. Wenn ich eine Nachricht von einem XP Client absende funktioniert alles ohne Probleme und am Server geht Messagebox mit dem Text auf. Wenn ich das unter Vista mache (ja Auoit wurde mit Adminrechten gestartet), geht zwar am Server auch Messagebox auf, diese ist aber einfach leer. Kann mir jemand sagen wie ich das auch unter Vista zum laufen bekomme?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Sorry für doppelpost. Habs aber gelöst. Den Server so umschreiben dann gehts auch unter VIsta:

    [autoit]

    While 1
    TCPStartup()
    $MainSocket = TCPListen(@IPAddress1, 33891, 100 )

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

    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1

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

    If $ConnectedSocket <> -1 Then
    $recv = TCPRecv($ConnectedSocket, 100)
    MsgBox(0,"Empfangen",$recv)
    EndIf
    TCPShutdown()

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

    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.