0

ネットワーク経由で文字列を送信していますが、文字列を受信する側を確認するたびに、受信した文字列の長さが8193. しかし、に表示される前に値を割り当てようとするとMsgBox、正しい値が返されます。String.Trim(Chr(10))*,String.Trim(Chr(13))を使用して文字列をトリミングしようとしString.Trim(ChrW(8193))ましたが、役に立ちませんでした。

誰かこれについて何か考えがありますか?

受信側のコードは次のとおりです。

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
4

1 に答える 1

2

ByteData バッファは常に ReceiveBufferSize のサイズです。あなたがしたいことは、返された .Read の量を確認し、それを返されたメッセージの長さとして使用することです。

于 2013-01-22T18:00:39.157 に答える