在 VB.net 中,我使用 TcpClient 来检索数据字符串。我不断检查 .Connected 属性以验证客户端是否已连接,但即使客户端断开连接,它仍然返回 true。我可以使用什么作为解决方法?
这是我当前代码的精简版:
Dim client as TcpClient = Nothing
client = listener.AcceptTcpClient
do while client.connected = true
dim stream as networkStream = client.GetStream()
dim bytes(1024) as byte
dim numCharRead as integer = stream.Read(bytes,0,bytes.length)
dim strRead as string = System.Text.Encoding.ASCII.GetString(bytes,0,i)
loop
如果客户端断开连接但我已经关闭了另一个应用程序并且它仍然没有,我会认为至少 GetStream() 调用会引发异常...
谢谢。
建议编辑 轮询 Client.Available 但这并不能解决问题。如果客户端没有“实际”连接可用,则返回 0。
关键是我试图让连接保持打开状态并允许我通过同一个套接字连接多次接收数据。