0

我正在尝试通过 tcp/ip 发送一个 ascii 命令,但是 python(我认为)在他的字符串中添加了一个标头。

如果我这样做,s.send(bytes('RV\n ', 'ascii'))当我检查发出的命令时,我会得到一个 eRV 而不是 RV。有任何想法吗?

以前的帖子

4

2 回答 2

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。

于 2013-06-12T03:09:27.007 回答
0

您能否再次包含wireshark详细信息?上一篇中的数据包与您的代码不匹配...例如,字节转储中的IP地址为192.168.75.98和192.168.75.150。问题是字节偏移与现实不符。我认为e是 TCP 标头的结尾。

于 2013-06-15T00:53:32.240 回答