Visual Basic TeamSpeak ClientQuery erhalten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Neeviu.

    Visual Basic TeamSpeak ClientQuery erhalten

    Hey,

    ich würde gerne mal wissen wie man in Visual Basic die notifyregister erhält damit ich nur z.B

    Quellcode

    Quellcode

    1. notifyclientpoke schandlerid=1 invokerid=1 invokername=Max invokeruid=Ju49djsnc/jfnsJfnsJ7JFn28= msg=test


    Hier will ich aber nur die msg haben.

    lg

    C#-Quellcode

    1. string s = "notifyclientpoke schandlerid=1 invokerid=1 invokername=Max invokeruid=Ju49djsnc/jfnsJfnsJ7JFn28= msg=test";
    2. int index = s.IndexOf("msg=");
    3. string msg = s.Substring(index + 4);
    4. Console.WriteLine(msg);


    Und jetzt musst du nur noch da, wo du den string herkriegst das ganze in den Timer packen und danach die paar Zeilen darauf anwenden. In der Variable msg hast du dann immer den string der hinter test steht.
    Du musst aber aufpassen, das funktioniert in dem Fall nur solange, wenn hinter msg=test keine andere property mehr kommt.
    Da wäre es vielleicht schlauer man parst nach dem Leerzeichen oder sowas.
    Das Problem ist aber wenn ich das in einem Timer mache dann hängt das ganze Programm, weil ich ja mit Readdata() noch das was im Telnet ausgegeben wird empfangen muss..

    Quellcode

    1. Private Stream As Net.Sockets.NetworkStream
    2. Private Tcp As New Net.Sockets.TcpClient()
    3. Private byte As [Byte]()
    4. Private encodedString As Byte()
    5. Private Function ReadData() As String
    6. Dim sData As String
    7. ReDim encodedString(Tcp.ReceiveBufferSize)
    8. Stream.Read(encodedString, 0, Tcp.ReceiveBufferSize)
    9. sData = Trim(System.Text.UTF8Encoding.UTF8.GetString(encodedString))
    10. ReadData = sData
    11. End Function
    12. Private Sub WriteData(ByVal sData As String)
    13. byte = System.Text.UTF8Encoding.UTF8.GetBytes(sData)
    14. Stream.Write(byte, 0, byte.Length)
    15. End Sub