在Python中使用UDP多播进行文件传输?

1 投票
1 回答
1084 浏览
提问于 2025-04-18 02:23

你怎么用Python通过UDP组播发送和接收文件呢?有没有什么标准库可以做到这一点?或者有没有其他的标准功能模块可以使用?

1 个回答

0

这里有一些关于如何做到这一点的信息,里面还有源代码示例:

import socket
import struct
import sys

message = 'very important data'
multicast_group = ('224.3.29.71', 10000)

# Create the datagram socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Set a timeout so the socket does not block indefinitely when trying
# to receive data.
sock.settimeout(0.2)
try:

    # Send data to the multicast group
    print >>sys.stderr, 'sending "%s"' % message
    sent = sock.sendto(message, multicast_group)

    # Look for responses from all recipients
    while True:
        print >>sys.stderr, 'waiting to receive'
        try:
            data, server = sock.recvfrom(16)
        except socket.timeout:
            print >>sys.stderr, 'timed out, no more responses'
            break
        else:
            print >>sys.stderr, 'received "%s" from %s' % (data, server)

finally:
    print >>sys.stderr, 'closing socket'
    sock.close()

撰写回答