【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多