Vb.net vb TCP客户端应用程序尝试读取服务器响应时中断
有人能告诉我为什么我的代码冻结在“Return sockleader.ReadLine()”上吗?非常感谢。当我使用“publicsubsend”发送命令时,我试图从我的Raspberry Pi服务器获取信息,代码被卡住了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
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是换行符。请原谅我的无礼:-)很高兴我能帮忙!由于印刷错误,我投票决定结束这个问题。