Nachricht an Server senden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Nachricht an Server senden

    Hallo Community,
    Ich versuche verzweifelt eine Textnachricht an meinen TS3 Server mittels Telnet zu senden.
    An einen CLient an sich problemlos. Doch ich würde die Nachricht gerne an einen ganzen Server senden.

    Mein Code sieht bisher so aus:

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Text
    3. Public Class Form1
    4. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    5. Dim tcpClient As New System.Net.Sockets.TcpClient()
    6. tcpClient.Connect("81.20.134.98", 10011)
    7. Dim networkStream As NetworkStream = tcpClient.GetStream()
    8. Dim sendBytes As [Byte]()
    9. sendBytes = Encoding.ASCII.GetBytes("login daten sind hier" + vbCrLf)
    10. networkStream.Write(sendBytes, 0, sendBytes.Length)
    11. 'Dim sendBytes3 As [Byte]()
    12. sendBytes = Encoding.ASCII.GetBytes("use sid=1" + vbCrLf)
    13. networkStream.Write(sendBytes, 0, sendBytes.Length)
    14. 'Dim sendBytes1 As [Byte]()
    15. sendBytes = Encoding.ASCII.GetBytes("sendtextmessage targetmode=1 target=1 msg=test!" + vbCrLf)
    16. networkStream.Write(sendBytes, 0, sendBytes.Length)
    17. 'Dim sendBytes2 As [Byte]()
    18. sendBytes = Encoding.ASCII.GetBytes("logout" + vbCrLf)
    19. networkStream.Write(sendBytes, 0, sendBytes.Length)
    20. End Sub
    21. End Class


    Laut Dieser Seite ist Target für den Empfänger zuständig.
    Ich habe versuch target durch server id zu ersetzen jedoch ohne erfolg.

    Hoffe ihr könnt mir ein wenig auf die sprünge Helfen

    Ich hab den Code aus einem Tutorial hier aus dem FOrum hab den nur Angepasst bzw umgeschrieben.

    Was meinst du mit Bilnd schreiben ohne Antworten Auszuwerten ?

    Die Kommunikation ist sehr einseitig.
    Das ist ein Monolog.
    Woran merkst du beispielsweise, ob deine Login-Daten akzeptiert werden, wenn du nicht mal überprüfst, was der Server zu deinem Login-Versuch meint?

    Gute Kommunikation bedeutet nach Erteilung einer Anweisung auf eine Antwort zu warten und dieser entsprechend fortzufahren.
    Wenn der Server auf deine Login-Anweisung "Nein" sagt, kannst du ihm lange andere Anweisungen erteilen.
    Er wird sie nicht ausführen.
    Unter Umständen blockiert der Server auch einfach, bis du seine Antwort gelesen hast.

    Ich verkneife mir jetzt zu erklären, was eine State-Machine ist.
    Du könntest aber zumindest nach erteilter Anweisung die Antwort des Servers lesen und auswerten.
    Das ist in dem Tutorial bestimmt auch beschrieben.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Genau das ist eben nich in dem Tutorial sonst hätte ichs in dem Code.

    Überprüfen was der server sagt .... hmm .... hänger

    Wir könnte man sowas bewergstelligen ?
    Hab mit Internet bzw Netzwerk Programmierung noch nich soviel am Hut gehabt

    Befehl Schreiben
    Antwort lesen
    Antwort auswerten

    Wenn OK: Nächsten Befehl schreiben ... Antwort lesen ... Antwort auswerten
    usw.

    Lesen kannst du mit Read


    Normalerweise macht man das asynchron wie in diesem Beispiel, aber versuch vielleicht erst mal die synchrone Methode zu erarbeiten.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --