当前位置:  开发笔记 > 编程语言 > 正文

如何使用python的telnetlib在固定的时间段内从设备获取数据?

如何解决《如何使用python的telnetlib在固定的时间段内从设备获取数据?》经验,为你挑选了1个好方法。

我通过telnet连接到硬件设备.就I/O而言,该设备非常简单.所以我向它提交一个命令,之后设备每次一行抽出一行数据,每秒一次.每行只包含一个数字.

所以我的问题是:如果我使用python的telnetlib连接到这个设备,我如何获取一段固定时间(或固定数量的数据行)的数据?

我已经尝试使用所有各种read_命令,但它们似乎都无限期地阻塞,除了read_until,我无法使用,因为输出不能用于确定何时停止.

(我在Cygwin下运行python 2.5,顺便说一句).

编辑:也许真正的问题是,我是否应该使用telnetlib,或者我应该只使用套接字模块?



1> sstock..:

根据您的描述,我不清楚您是否使用telnetlib,因为您要连接的设备需要telnet提供的终端设置,或者因为它似乎是正确的做法.

如果设备如您所描述的那样简单 - 即不在连接时协商终端选项 - 您是否考虑过asynchat模块?它适用于您正在描述的"发送命令,读取行"类型的IO模式.

或者,对于较低级别的某些内容,您可以使用套接字模块打开与设备的连接,然后使用定时循环和read()传入数据.如果这些行是换行终止的,那么您应该很容易识别每个单独的号码.如果您关心阻塞,请将此循环粘贴在自己的线程中.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有