来自TCPClient的流从下一个数据包中捕获数据

时间:2014-05-26 11:19:40

标签: vb.net tcpclient

我正在开发一些软件,通​​过TCP侦听来自其他程序的事件。

事件的格式如下:“value1; value2; value3” 问题是有时来自value1的单个字符被读取到上一个事件,所以我得到这样的东西:

值1;值2; value3v

alue1;值2;值3

如何让它知道每条消息的开始和结束位置?

以下是代码:

Dim client As New TcpClient()

Sub listen()
    Dim networkStream As Stream = client.GetStream()
    While True

        Dim bytes(client.ReceiveBufferSize) As Byte
        Dim size As Integer = 0
        size = networkStream.Read(bytes, 0, CInt(client.ReceiveBufferSize))

        'process event here

    End While
End Sub

这都是在它自己的线程上完成的。

1 个答案:

答案 0 :(得分:0)

发件人必须包括其发送的每个数据的长度,因此在接收器处您将收到最多提供的长度。更简单的选择是包括NULL终止,以便您可以在接收端读取它作为单个字符串。