【问题标题】:vb.net - StreamReader hangs if there is nothing to readvb.net - 如果没有可读取的内容,StreamReader 将挂起
【发布时间】:2020-12-27 04:11:58
【问题描述】:
我有这个代码来读取 TCP 流:
Function checkdata() As String
Dim Stream As NetworkStream = client.GetStream()
sr = New StreamReader(Stream)
Dim s As String = sr.ReadLine() <------------
Return s
End Function
问题是如果流上没有新数据,代码会挂在标记的行上。为什么?我该如何解决?
【问题讨论】:
标签:
vb.net
tcp
stream
streamreader
【解决方案1】:
您可以使用NetworkStream 的.DataAvailable 属性吗?
Function checkdata() As String
Dim Stream As NetworkStream = client.GetStream()
If Stream.DataAvailable Then
Dim SR = New StreamReader(Stream)
Dim s As String = SR.ReadLine()
Return s
Else
Return Nothing
End If
End Function