我正在尝试通过 tcp/ip 发送一个 ascii 命令,但是 python(我认为)在他的字符串中添加了一个标头。
如果我这样做,s.send(bytes('RV\n ', 'ascii'))
当我检查发出的命令时,我会得到一个 eRV 而不是 RV。有任何想法吗?
我正在尝试通过 tcp/ip 发送一个 ascii 命令,但是 python(我认为)在他的字符串中添加了一个标头。
如果我这样做,s.send(bytes('RV\n ', 'ascii'))
当我检查发出的命令时,我会得到一个 eRV 而不是 RV。有任何想法吗?
接收者
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> s.bind(('', 7775))
>>> print(s.recvfrom(1024))
(b'RV\n', ('127.0.0.1', 39860))
发件人
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> s.connect(('localhost', 7775))
>>> s.send(bytes('RV\n', 'ascii'))
3
检查 send() 的返回值。应该是3。
您能否再次包含wireshark详细信息?上一篇中的数据包与您的代码不匹配...例如,字节转储中的IP地址为192.168.75.98和192.168.75.150。问题是字节偏移与现实不符。我认为e
是 TCP 标头的结尾。