【发布时间】:2017-09-14 15:25:15
【问题描述】:
我正在使用以下 python 脚本进行原始套接字数据包传输。数据包传输很好,但我无法打印从另一端传入的数据包。
from socket import socket, AF_PACKET, SOCK_RAW
s = socket(AF_PACKET, SOCK_RAW)
s.bind(("eth0", 0))
src_addr = "\x54\xbe\xf7\x40\xf5\x82"
dst_addr = "\xff\xff\xff\xff\xff\xff"
payload = ("[("*30)+"Hello"+("]"*30)
checksum = "\x1a\x2b\x3c\x4d"
data = payload+checksum
s.send(dst_addr+src_addr+data)
#for receive function
response=s.recv(4096)
print response
s.close()
【问题讨论】:
-
接收端有没有报错? print 语句的输出是什么?
-
接收消息的服务器应该始终处于活动状态,但您似乎关闭了套接字。
-
不,我从“打印响应”布兰登那里得到任何打印。它继续等待recv fn。即使它从客户那里收到。
-
我也试过不关闭套接字,但它没有捕获传入的数据包
标签: python python-2.7 sockets raw-sockets