【发布时间】:2013-06-21 09:00:54
【问题描述】:
我正在尝试广播一些数据并使用 python 接收它。 这是我想出的代码。
from socket import *
import threading
class PingerThread (threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run (self):
print 'start thread'
cs = socket(AF_INET, SOCK_DGRAM)
cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
cs.sendto('This is a test', ('192.168.65.255', 4499))
a = PingerThread()
a.start()
cs = socket(AF_INET, SOCK_DGRAM)
data = cs.recvfrom(1024) # <-- waiting forever
但是,代码似乎永远在 cs.recvfrom(1024) 等待。可能有什么问题?
【问题讨论】:
-
你不需要告诉你正在接收的套接字在哪里听吗?
-
您可能想看看docs.python.org/2/library/socketserver.html,它很好地用一层非常薄的糖覆盖了这个应用程序。
标签: python networking udp