Problem mit Stream

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Torenjk.

    Problem mit Stream

    Hallo Leute,

    ich hab mir nen kleines Programm gebastelt mit Client-Server struktur. Nur versuche ich jetzt bei bestimmten Strings funktionen aufzurufen, das macht er aber ned.
    Wisst ihr woran das liegt?


    Das ist der Server (Auf dem PC werden die Befehle dann ausgeführt)

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Net.Sockets
    3. Imports System
    4. Imports Microsoft.Win32
    5. Public Class Form1
    6. Dim port As Integer = 6961
    7. Dim sock As New TcpClient()
    8. Dim tcpc As New TcpListener(port)
    9. 'Auf Port hörn
    10. Private Sub listen()
    11. Try
    12. tcpc.Start()
    13. sock = tcpc.AcceptTcpClient()
    14. Catch ex As Exception
    15. End Try
    16. End Sub
    17. Private Sub check()
    18. If sock.Connected = True Then
    19. sock.SendTimeout = 5000
    20. Try
    21. Dim nstream As NetworkStream = sock.GetStream
    22. Dim bit(sock.ReceiveBufferSize) As Byte
    23. nstream.Read(bit, 0, CInt(sock.ReceiveBufferSize))
    24. Dim str As String = System.Text.Encoding.ASCII.GetString(bit)
    25. Dim id() As String = Split(str, "*", -1, CompareMethod.Text)
    26. If id(0) = 0 Then
    27. Dim stri As String = id(1)
    28. MessageBox.Show(stri)
    29. If stri = "Shutdown" Then
    30. testest()
    31. Call max()
    32. End If
    33. End If
    34. If id(0) = 0 Then
    35. Dim stri As String = id(1)
    36. MessageBox.Show(stri)
    37. MessageBox.Show("Befehl war" & stri)
    38. If stri = "test" Then
    39. testest()
    40. Call max()
    41. End If
    42. If stri = "Shutdown" Then
    43. Call max()
    44. End If
    45. End If
    46. Catch ex As Exception
    47. check()
    48. End Try
    49. End If
    50. End Sub
    51. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    52. Me.Visible = True
    53. While sock.Connected = False
    54. Try
    55. listen()
    56. Catch ex As Exception
    57. End Try
    58. End While
    59. While True
    60. check()
    61. End While
    62. End Sub
    63. End Class



    Und das ist der Client (der die Befehle in form eines Strings gibt)

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Net.Sockets
    3. Public Class Form1
    4. Dim sock As New TcpClient()
    5. Dim ip As IPAddress = IPAddress.Parse("127.0.0.1")
    6. Dim port As Integer = 6961
    7. Private Sub connect()
    8. ip = IPAddress.Parse(TextBox1.Text)
    9. port = 6961
    10. Try
    11. sock.Connect(ip, port)
    12. Catch ex As Exception
    13. MsgBox("Kann ned zur IP connecten!")
    14. End Try
    15. End Sub
    16. Private Sub dat(ByVal dat As String)
    17. Dim nstream As NetworkStream = sock.GetStream()
    18. Dim bit As [Byte]() = System.Text.Encoding.ASCII.GetBytes(dat)
    19. nstream.Write(bit, 0, bit.Length)
    20. End Sub
    21. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    22. End Sub
    23. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    24. Call connect()
    25. End Sub
    26. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    27. dat("0*" + TextBox2.Text)
    28. End Sub
    29. End Class



    Nun die Msgboxen mit dem String gibt er aus, aber nicht die Befehle die in den Funktionen vorgegeben sind (in ner eigenen klasse)
    Die befehle in den Klassen sind halt solche sachen wie:

    VB.NET-Quellcode

    1. msgbox("Funktionsmsg :D")