我有一个简单的发布/订阅系统,可以使用UDP套接字在Linux上运行,但在Mac OS X(特别是10.10.3)上不起作用。有什么我可以改变以允许它在我的Mac上工作吗?
pub.py:
import sys
import socket
sender = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sender.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while True:
line = sys.stdin.readline()
if not line: break
sender.sendto(line,("127.255.255.255",4321))
sub.py:
import sys
import socket
receiver = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
receiver.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1)
receiver.bind(('',4321))
while True:
data,addr = receiver.recvfrom(1500)
sys.stdout.write(data)
要运行它,我在不同的窗口中启动sub.py的多个实例。在一个窗口中,我启动pub.py并将东西输入stdin(按回车键),它会显示在两个收件人身上。它适用于最新版本的Linux Mint和Centos。