TCPIP流可以读取

TCPIP流可以读取,tcp,Tcp,我正在从unix服务器发送和接收消息,一切正常并按预期工作…除非我没有从服务器收到响应,我可以确认服务器确实收到了我的消息,但无论出于何种原因,它们都没有响应。 我在阅读时使用了下面的代码,它到达numberOfBytesRead=并挂断了我的应用程序 If serverStream.CanRead Then Dim myReadBuffer As Byte() = New Byte(1024) {} Dim m

我正在从unix服务器发送和接收消息,一切正常并按预期工作…除非我没有从服务器收到响应,我可以确认服务器确实收到了我的消息,但无论出于何种原因,它们都没有响应。 我在阅读时使用了下面的代码,它到达numberOfBytesRead=并挂断了我的应用程序

If serverStream.CanRead Then

                    Dim myReadBuffer As Byte() = New Byte(1024) {}

                    Dim myCompleteMessage As StringBuilder = New StringBuilder()

                    Dim numberOfBytesRead As Integer = 0



                    Do

                        numberOfBytesRead = serverStream.Read(myReadBuffer, 0, myReadBuffer.Length)

                        If My.Settings.initCompassLive Then

                            myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead))

                        Else

                            myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 2, numberOfBytesRead))

                        End If

                    Loop While serverStream.DataAvailable

                     ' MsgBox("You received the following message : " + myCompleteMessage.ToString)

                    returndata = myCompleteMessage.ToString

                Else

                    MsgBox("Aauth Request Failed: " & returndata)

                    Exit Sub

                End If

我只需要一个serverStream.ReadTimeOut=bla bla bla bla bla

TYVM
MW

我不确定您是指挂起(无限期等待)还是挂起(突然关闭)。在阻塞i/o时,如果服务器确认发送的数据但不发送回任何新数据,则读取可能永久挂起。如果读操作通过不确认发送的数据或发送重置来被动关闭连接,也可能导致读操作返回错误。抱歉,无限期等待,我知道为什么我没有收到响应,对此我无能为力,我只需要处理根本没有得到任何回复的问题,而不是等待不会出现的响应。