从这里借鉴,我编写了一个小Python脚本,它监听一个端口并打印所有收到的UDP数据包:
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024)
print "received message:", repr(data)
现在我正在使用 netcat
将数据发送到此脚本。以下是我的命令行。
echo -e "foo:1|c" | netcat -v -u localhost 5005
以下是Python的输出结果:
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'foo:1|c\n'
前面大约四行左右的“X”字符每秒钟出现一次,然后最后两行几乎同时出现。
我的问题是:这些额外的“X”数据包来自哪里?如果源是netcat
,那么我如何防止netcat
发出它们?我相信这是BSD的netcat
。