.net 网络流返回的字符串长度始终为8193

.net 网络流返回的字符串长度始终为8193,.net,vb.net,string,networkstream,trim,.net,Vb.net,String,Networkstream,Trim,我通过网络发送一个字符串,每次我检查接收字符串的一侧时,它总是告诉我接收到的字符串长度是8193。但是,当我试图在值显示在MsgBox中之前分配该值时,它会返回正确的值。我尝试使用string.Trim(Chr(10))*,string.Trim(Chr(13)),string.Trim(ChrW(8193))修剪字符串,但没有效果 有人知道这件事吗 这是我的接收方代码。 您的ByteData缓冲区始终是ReceiveBufferSize的大小。您要做的是检查返回的内容。读取返回的内容并将其用作

我通过网络发送一个字符串,每次我检查接收字符串的一侧时,它总是告诉我接收到的字符串长度是
8193
。但是,当我试图在值显示在
MsgBox
中之前分配该值时,它会返回正确的值。我尝试使用
string.Trim(Chr(10))
*,
string.Trim(Chr(13))
string.Trim(ChrW(8193))
修剪字符串,但没有效果

有人知道这件事吗

这是我的接收方代码。


您的ByteData缓冲区始终是ReceiveBufferSize的大小。您要做的是检查返回的内容。读取返回的内容并将其用作返回消息的长度。

那么字符串实际包含的内容是什么?只是一些短字符串消息。感谢您指出这一点。还有一件事,如果我决定检索字符串上某个元素的索引,该怎么办。我该怎么做呢?您没有定义“元素”的含义,但通常您会定义result=stringVar.IndexOf(“任意”)…哦。谢谢你的邀请。非常感谢!:)
Private Sub ChatConnectionTimer_Tick(sender As Object, e As System.EventArgs) Handles ChatConnectionTimer.Tick

    Try
        Dim ConnectionStatus As String = String.Empty

        If CBool(chatClientSocket.Available) Then
            chatNetworkStream = chatClientSocket.GetStream()
            Dim ByteData(chatClientSocket.ReceiveBufferSize) As Byte
            chatNetworkStream.Read(ByteData, 0, CInt(chatClientSocket.ReceiveBufferSize))
            ConnectionStatus = Encoding.ASCII.GetString(ByteData)

            MsgBox(ConnectionStatus.Length()) 'This part always return 8193

            If ConnectionStatus.Contains("Server is disconnected.") Then
                DisconnectChat()
            End If
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Try
End Sub