终端设备的数据到LINUX主机读队列延时的问题

发布于 2022-09-19 13:14:25 字数 339 浏览 5 评论 0

我在写一个设备的LINUX驱动程序,设备是接到终端的辅口上的。现在出现一个很麻烦的问题,在一个WINDOWS终端(实达终端)上通过IE来TELNET 主机的时候,设备返回的数据要隔很久才可以读的到,每次的时间间隔都是24秒,分秒不差。我通过别的设备监控数据线,设备在接受到命令后,数据已经通过数据线发送到终端了。可是主机上驱动程序中的read函数由于没有数据可以读,被挂起,直到24秒读队列有数据了才开始读,这就说明数据从设备到主机的读队列经过了24秒。还有一个很关键的问题是,在同一个终端上,通过TELNET程序直接TELNET主机,是不会出现这样的问题的。

我都被这问题折磨了很多天了,还是没有办法解决。所以只好请教各位达人了。请各位达人指点迷津。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扬花落满肩 2022-09-26 13:14:25

是不是可以改成非阻塞read?这样,即使读不到数据就返回了,不至于等到有数据了,才返回。

弥繁 2022-09-26 13:14:25

既然分秒不差,那就说明机制是这样滴.
你的read不能及时的接受返回的数据,然后被挂起,设备返回了数据OK,但是很多任务都在等内核调度,
所以唤醒你的read,他要等时机成熟了才行.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文