我有一个通过 TCP 与设备通信的类。我发送命令,然后stream.Read(reply, 0, 1)
在 TcpClient 的 GetStream() 上发出。我读出每个字节,然后将读取的字节组合成一个字符串,并将该字符串与终止字符串进行比较,让我知道何时停止读取。
设备软件存在一些缺陷,因此并不总是发送终止字符串。我想以适当的方式处理这个问题,并使用一段时间来确定是否应该停止读取。
如果我将 设置stream.ReadTimeout
为 以外的其他-1
值,则超过此超时时套接字将关闭,这是我不希望的。
如果我stream.BeginRead(..)
与 a 一起使用,stream.ReadTimeout = -1
那么我会在一段时间后吸干线程池。
可以构建什么智能解决方案来解决这个问题?