Vb.net vb TCP客户端应用程序尝试读取服务器响应时中断

Vb.net vb TCP客户端应用程序尝试读取服务器响应时中断,vb.net,tcp,tcpclient,Vb.net,Tcp,Tcpclient,有人能告诉我为什么我的代码冻结在“Return sockleader.ReadLine()”上吗?非常感谢。当我使用“publicsubsend”发送命令时,我试图从我的Raspberry Pi服务器获取信息,代码被卡住了 Imports System.Net Imports System.Net.Sockets Imports System.IO Public Class TCPControl Public sock As TcpClient Public DataStrea

有人能告诉我为什么我的代码冻结在“Return sockleader.ReadLine()”上吗?非常感谢。当我使用“publicsubsend”发送命令时,我试图从我的Raspberry Pi服务器获取信息,代码被卡住了

Imports System.Net
Imports System.Net.Sockets
Imports System.IO

Public Class TCPControl
    Public sock As TcpClient
    Public DataStream As StreamWriter
    Public DataGet As TcpListener
    Private netStream As NetworkStream
    Private sockReader As StreamReader

    Public Sub New(Host As String, Port As Integer)
        ' CLIENT
        sock = New TcpClient(Host, Port)
        netStream = sock.GetStream()
        sockReader = New StreamReader(netStream)
        DataStream = New StreamWriter(sock.GetStream)
        Dim localAddr As IPAddress = IPAddress.Parse("172.16.2.104")
        DataGet = New TcpListener(localAddr, 6969)
    End Sub

    Public Sub Send(Data As String)
        DataStream.Write(Data & vbCrLf)
        DataStream.Flush()
    End Sub

    Public Function Receive()
        Dim howMany As Integer = sock.Available()
        If netStream.DataAvailable Then
            Return sockReader.ReadLine()
        End If
        Return howMany
    End Function
End Class

ReadLine()。您确定响应中包含换行符吗?顺便说一下,您的
Receive()
方法没有任何意义。它将返回读取字符串,如果没有可用数据,则返回
0
。坚持使用一种返回类型,并将
选项严格设置为
。哇!非常感谢你!我使用的是\0,但\n\r是换行符。请原谅我的无礼:-)很高兴我能帮忙!由于印刷错误,我投票决定结束这个问题。