终端设备的数据到LINUX主机读队列延时的问题
我在写一个设备的LINUX驱动程序,设备是接到终端的辅口上的。现在出现一个很麻烦的问题,在一个WINDOWS终端(实达终端)上通过IE来TELNET 主机的时候,设备返回的数据要隔很久才可以读的到,每次的时间间隔都是24秒,分秒不差。我通过别的设备监控数据线,设备在接受到命令后,数据已经通过数据线发送到终端了。可是主机上驱动程序中的read函数由于没有数据可以读,被挂起,直到24秒读队列有数据了才开始读,这就说明数据从设备到主机的读队列经过了24秒。还有一个很关键的问题是,在同一个终端上,通过TELNET程序直接TELNET主机,是不会出现这样的问题的。
我都被这问题折磨了很多天了,还是没有办法解决。所以只好请教各位达人了。请各位达人指点迷津。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是不是可以改成非阻塞read?这样,即使读不到数据就返回了,不至于等到有数据了,才返回。
既然分秒不差,那就说明机制是这样滴.
你的read不能及时的接受返回的数据,然后被挂起,设备返回了数据OK,但是很多任务都在等内核调度,
所以唤醒你的read,他要等时机成熟了才行.