如何通过IP远程访问网络计算机上的COM8串口设备?
访问远程网络计算机的串口设备解决方案
你的写法错误在于,serial_for_url的socket://协议是用来连接已经通过网络共享出来的串口服务,而非直接指定远程机器上的串口路径。要实现需求,需分两步操作:
1. 远程机器共享COM8串口
你需要在目标机器(10.10.10.152)上把COM8串口通过TCP端口共享出来,常用工具是ser2net(Windows/Linux均支持):
- 安装ser2net后,修改配置文件(Windows一般为
ser2net.conf,Linux路径为/etc/ser2net.conf),添加一行配置(以波特率9600为例,可根据你的设备参数调整):2000:telnet:0:COM8:9600 NONE 1STOPBIT 8DATABITS - 重启ser2net服务,此时远程机器的COM8会通过TCP 2000端口对外提供访问。
如果不想用第三方工具,也可以用pySerial自行实现简单的串口服务器,远程端运行以下代码:
import serial from serial.server import SerialServer ser = serial.Serial('COM8', 9600) # 匹配你的设备参数 server = SerialServer(ser, port=2000) server.serve_forever()
2. 本地机器连接远程串口
完成远程共享后,本地用serial_for_url连接对应的TCP端口即可,正确代码如下:
import serial # socket://远程IP:共享的TCP端口 ser = serial.serial_for_url("socket://10.10.10.152:2000", baudrate=9600)
之后你就可以像操作本地串口一样,使用ser.read()、ser.write()等方法与远程串口设备交互。
内容的提问来源于stack exchange,提问作者goryef
相关产品推荐
相关产品推荐

