如何使用Python发送具有特定格式的广播数据包

时间:2013-07-29 03:30:17

标签: python sockets python-2.7 python-3.x

我需要向255.255.255.255端口1000发送请求广播数据包 我不知道如何将0x01作为第一个字节发送,后面的4个字节是一个随机数。 提前谢谢大家     导入套接字     import sys

def main(message) :
    my_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
    my_socket.sendto(message, ('255.255.255.255' ,10000))
    my_socket.close()

if len(sys.argv) < 2 :
    sys.exit('wrong args')
else :    
        main(sys.argv[1])

enter image description here

1 个答案:

答案 0 :(得分:0)

从文档中,这是一个在套接字上发送消息的函数:

def mysend(self, msg):
        totalsent = 0
        while totalsent < MSGLEN:
            sent = self.sock.send(msg[totalsent:])
            if sent == 0:
                raise RuntimeError("socket connection broken")
            totalsent = totalsent + sent

此处的发送代码几乎适用于任何消息传递方案 - 在Python中发送字符串

所以你只需要通过前缀'0x01'

来构建字符串