individeuelle MsgBoxen via TCP, möglich???

  • Hallo leute,
    hab da eine frage, kann man mit autoit einen server basteln mit dem man individuelle msgboxn aufrufen kann... (man gibt beim clienten die msgbox id ein, titel, text....)
    und dieser erscheint dann beim server...

    so was ähnliches hab ich ja gefunden abe ich möchte die titels und die msgb. id auch verändern können.....
    bitte helft mir!
    danke

    mfg sl4y3r

    .... was ich gefunden hab

    Spoiler anzeigen
    [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]
    Spoiler anzeigen
    [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]
  • Du könntest einfach mehrere Nachrichten versenden,der erste wird als ID gezählt,der 2. als Titel und der 3. als Nachricht.
    Dauaus wird dann ne Msgbox erstellt !

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • hmm... kling gut... aber, wie würde dass dan aussehen?
    ... mit sleep strings??
    dange für deine hilfe :)

    • Offizieller Beitrag

    Das ist doch simples String-Handling.
    Du sendest in deinem String eine Kennung voran (irgendeine Ziffernkombination) an der auf der Empfängerseite ersichtlich ist, dass hier eine MsgBox aufgerufen werden soll.
    Etwa so:

    [autoit]

    ; Sender
    $strToSend = "00;MsgboxTyp;MsgboxTitel;MsgboxText"
    TCPSend($ConnectedSocket, $strToSend)

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

    ; Empfänger
    $recv = TCPRecv($ConnectedSocket, 40)
    If StringLeft($recv, 2) = '00' Then
    $aMsg = StringSplit($recv, ';')
    MsgBox($aMsg[2],$aMsg[3],$aMsg[4])
    Else
    ; ...
    EndIf

    [/autoit]

    Edit: Achja, die Länge des TCPRecv mußt du dann variabel gestalten.

  • WOW
    danke für deine schnelle und gute antwort!

    :D :D

    sry bin mit dem string befehln noch voll ein noob :rofl:

  • hmm.. hab das jetz irgndwie ausprobiert... doch irgndwie fuzt es nicht

    wo liegt der fehler????

    server

    [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]

    $recv = TCPRecv($ConnectedSocket, 40)
    If StringLeft($recv, 2) = '00' Then
    $aMsg = StringSplit($recv, ';')
    MsgBox($aMsg[2],$aMsg[3],$aMsg[4])
    Else
    ; ...
    EndIf

    Wend

    [/autoit]

    client

    [autoit]

    $Empfaenger_IP = @IPAddress1
    $Port = 33891
    $strToSend = "00;1;MsgboxTitel;MsgboxText"
    If @error = 1 Then Exit

    TCPStartUp()

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

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

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

    TCPShutdown ()

    [/autoit]
  • achso ja... habs mit der einem getestet... hab auf meinem anderen autoit noch nicht installiert.... aber meine anderen tcp scripte haben alle auf meinem pc gefunzt
    ...

  • Also bei mir geht's genau so wie du das gepostest hast, aber nur einmal!
    Ich hab beim Server nach der MsgBox noch mal 2 Zeilen eingefügt, dann funktioniert's auch öfter. Ich weiß allerdings nicht wieso das so geht, aber bis jetzt gings immer so einwandfrei!

    server

    [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]

    $recv = TCPRecv($ConnectedSocket, 40)
    If StringLeft($recv, 2) = '00' Then
    $aMsg = StringSplit($recv, ';')
    MsgBox($aMsg[2],$aMsg[3],$aMsg[4])
    TCPShutdown()
    TCPStartUp()
    Else
    ; ...
    EndIf

    Wend

    [/autoit]
  • re... werd mal autoit auf meinem alten pc installiern ... dan kann ichs auch testn
    danke für deine hilfe!

  • achso...
    hmm... bei mir spinnt das ein bisschen... (1x hat die msgbox funktioniert danach irgnedwie nicht mehr)
    werd jetz noch ein bisschen probiern

    vlt hängts mit dem zusammen --> Vista, WLAN, ... autoit vers. 3.2.12.1 :D

  • Das einzige TCP/IP-Script,das ich hatte,hat nicht funktioniert,OBWOHL es keine Fehler beeinhaltete ! .......
    Port-Forwarding etc. sei dank !

    Ach,ich wünschte,es gäbe ein OS außer Windows,mit dem man alle Spiele spielen könnte !

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön