在PyOSC中,您需要为OSCServer同时接收IP和端口信息。这对我来说并不合适。和Max一样,你只需要声明端口。是不是为了接收你总是只需要localhost作为ip?PyOSC,python。为什么oscserver需要IP地址来接收?
我有一个Android应用程序发送OSC消息到我的电脑上的python程序。我现在遇到的麻烦是Python,我总是需要输入正确的IP才能工作。如果将其更改为“本地主机”,它甚至不会工作。
据我的理解,对于udp接收,你只需要打开一个端口,IP是不相关的,因为它总是要本地主机。
class Rating_receiver:
def __init__(self, ip = '192.168.0.3', port = 50010, num_emotion = 9, num_degree = 4):
self.receive_address = ip, port
self.num_emotion = num_emotion
self.num_degree = num_degree
self.choice = targetlist[0]
self.degree = degreelist[0]
def spawn(self):
print"Server Created."
self.receiveServer = OSC.OSCServer(self.receive_address)
self.receiveServer.addDefaultHandlers()
def start(self):
# Start OSCServer
print "\nStarting OSCServer."
self.emorating_oscServer = threading.Thread(target = self.receiveServer.serve_forever)
self.emorating_oscServer.start()
print "\nOSCServer established.
rating_receiver = Rating_receiver(ip = "localhost", port = 7110, num_emotion = 9, num_degree = 4)
rating_receiver.spawn()
所以,如果我设置IP为“localhost”(服务器可以建,但不能接收任何消息)将无法正常工作,只有当我进入实际的IP,例如工作“192.168.0.3”。 谢谢
我做了,不幸的是它不起作用。现在我的解决方案是使用ipAddr = socket.gethostbyname(socket.getfqdn())来获取IP。也许我可以试试0.0.0.0 –