textnachrichten an IP senden

  • ich hab mal wieder ne frage und zwar möcht ich ein kleines porgramm schreiben mit dem man textnachrichten an eine IP-adresse senden kann (so wie net send in der cmd) und am anderen ende soll die textnachricht in einer "traytip" angezeigt werden.
    bisher hab ich es immer so realisiert das ich die nachricht in nen textfile schreibe und am anderen ende immer nachschaue ob da eine neue nachricht drinnen steht.


    giebts da was?

  • ich habs mir durchgelesen und probiert, verstehs aber nicht

    client:
    also ich muss TCPStartUp() ganz am anfang des skripts sagen

    danach kommt $socket = TCPConnect(IPadresse,port)
    und port ist immer gleich(33891)???

    Dim $ConnectedSocket = -1
    wozu -1?
    danach eine inputbox in die man die nachricht schreibt
    und dann TCPSend($ConnectedSocket,$szData)

    richtig soweit?

    server:

    $MainSocket = TCPListen($szIPADDRESS, $nPORT)
    If $MainSocket = -1 Then Exit

    why -1???

    Einmal editiert, zuletzt von Hollywood (3. Oktober 2007 um 10:35)

  • schau dir doch mal die hilfe an..

    wenn keine verbindung besteht bzw error wird eben -1 zurück gegeben...

    Gta kann das genauer erklären, aber die Wiki ist doch recht gut bestückt mit Infos...

    • Offizieller Beitrag

    Hallo

    Der Port musst nicht immer 33891 sein! Den kannst du dir aussuchen, der Port muss aber bei Client und Server gleich sein!

    Ich könnte jetzt noch lange erklären, aber am besten helfen bekanntlich Beispiele ;)

    CLIENT

    Spoiler anzeigen
    [autoit]

    ;###########
    ; CLIENT
    ;###########
    TCPStartup() ;Immer wenn du TCP... Befehle im Script hast muss das ganz oben am Scriptanfang stehen!
    Global $IP = "192.168.0.2" ;Die IP des Servers wohin er sich Verbinden will, die musst du natürlich ändern!
    Global $PORT = 1234 ;Der Port auf dem das alles Laufen soll. Muss beim Client der gleiche sein wie beim Server. Wenn du ihn ändern willst, musst du ihn bei beiden ändern!
    Global $MainSocket = -1 ;Hier wird $MainSocket mit -1 deklariert, damit es bei der unterliegenden While schleife keine Probleme gibt.
    While $MainSocket = -1 ;Solange $MainSocket = -1 ist bleibt die schleife. Wenn $MainSocket <> -1 ist wird die schleife beendet.
    $MainSocket = TCPConnect($IP, $PORT) ;Versucht sich auf die ip $IP und port $PORT zu verbinden, undzwar solange bis $MainSocket <> -1 also er sich erfolgreich verbunden hat mit dem Server.
    WEnd
    TCPSend($MainSocket,"Der Text der gesendet werden soll");Hier wird der Text gesendet, undzwar auf $MainSocket, also auf ip $IP und Port $PORT.
    TCPCloseSocket($MainSocket) ;Hier wird der $MainSocket wieder beendet.
    TCPShutdown() ;Nicht unbedingt notwenig, ist so aber schöner.

    [/autoit]

    SERVER

    Spoiler anzeigen
    [autoit]

    ;###########
    ; SERVER
    ;###########
    TCPStartup() ;Immer wenn du TCP... Befehle im Script hast muss das ganz oben am Scriptanfang stehen!
    Global $IP = "192.168.0.2" ;Die IP des Servers, wo er den "Listening Socket" (also den Zuhörenden Sockel) erstellen soll
    Global $PORT = 1234 ;Der Port auf dem das alles Laufen soll. Muss beim Client der gleiche sein wie beim Server. Wenn du ihn ändern willst, musst du ihn bei beiden ändern!
    Global $ListeningSocket = TCPListen($IP, $PORT) ;Der Zuhörende Sockel also ListeningSocket.
    If @error Then Exit ;Wenn er aus irgendeinem Grund den ListeningSocket nicht erstellen kann wird das Script beendet.
    Global $AccSocket = -1 ;Hier wird $AccSocket mit -1 deklariert, damit es bei der unterliegenden While schleife keine Probleme gibt.
    Global $Recv ;Hier wird $Recv deklariert, damit es bei der noch etwas weiter unterliegenden While schleife keine Probleme gibt.
    While $AccSocket = -1 ;Solange $AccSocket = -1 ist bleibt die schleife. Wenn $AccSocket <> -1 ist wird die schleife beendet.
    $AccSocket = TCPAccept($ListeningSocket) ;Wartet bis ein Client versucht auf der ip $IP und den Port $PORT sich zu verbinden.
    WEnd
    While $Recv = ''
    $Recv = TCPRecv($AccSocket, 1024) ;Hier wird von $AccSocket text "Rececived" also Empfangen.
    WEnd
    TrayTip("",$Recv,5) ;Hier wird der Empfangende Text mit einem TrayTip ausgegeben-
    Sleep(5000) ;Wartet 5 Sekunden
    TCPCloseSocket($AccSocket) ;Hier wird der $AccSocket wieder beendet.
    TCPShutdown() ;Nicht unbedingt notwenig, ist so aber schöner.

    [/autoit]

    Ich hoffe das hilft dir ;)

    Mfg Spider