我已连接到条码阅读器,该阅读器具有以太网IP地址并使用以下(简化)代码:
using (TcpClient client = new TcpClient("192.168.20.41", 1002))
{
using (NetworkStream stream = client.GetStream())
{
while (true)
{
int readCount;
byte[] data = new byte[client.ReceiveBufferSize];
while (stream.DataAvailable && (readCount = stream.Read(data, 0, client.ReceiveBufferSize)) != 0)
{
value += Encoding.UTF8.GetString(data, 0, readCount);
}
if (!string.IsNullOrWhiteSpace(value) && value.EndsWith(endOfLine))
{
OnRead(value);
value = "";
}
//Thread.Sleep(200);
}
}
}
当我启动我的测试应用程序并扫描一些条形码工作正常时,我可以根据需要进行多次扫描。现在,当我闲置至少30秒然后扫描条形码然后stream.DataAvailable保持false,client.Available保持0,但client.Connected仍然是true。当我重新启动我的应用程序时,它再次工作,直到我再次闲置30秒。
我是否需要保持客户端或流存活?我该怎么做?
提前致谢。