我正在尝试通过tcp / ip发送ascii命令,但python(我认为)在他的字符串中添加一个标题。
如果我做了s.send(bytes('RV\n ', 'ascii'))
当我检查命令时,我得到一个eRV而不是RV。有什么想法吗?
答案 0 :(得分:0)
<强>接收器强>
>>> 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。
答案 1 :(得分:0)
您可以再次提供wireshark详细信息吗?上一篇文章中的数据包与您的代码不匹配...例如,字节转储中的IP地址为192.168.75.98和192.168.75.150。问题是字节偏移与现实不匹配。我认为e
是TCP标题的结尾。