在PyOSC中,OSCServer需要IP和端口才能接收信息。这对我来说没什么意义。和Max一样,你只需要声明端口。不是为了接收你总是需要本地主机作为ip吗?在
我有一个android应用程序,它向我电脑上的python程序发送OSC消息。我现在遇到的问题是在Python上,我总是需要输入计算机的正确IP才能正常工作。如果我把它改成“localhost”也不行。在
据我所知,对于udp-receive,您只需要打开一个端口,而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”。 谢谢
您确实应该使用“localhost”。在
定义所需的端口,然后将消息从另一台计算机发送到在其ip上运行此代码的计算机。我想您已经注意到了诸如端口打开之类的事情,并且您知道从外部网络到路由器内部的访问范围的不同,但是我将列出它来说明:
您必须定义“default_handler”函数来处理接收到的消息,不确定是否定义了它,但忘记在此处显示:
您可能还想为您的OSCServer语法签出一个示例。在
你试过
127.0.0.1
吗?它应该在任何地方都有效。在我相信你给的IP服务器将使用。在
127.0.0.1
基本意思是:“只监听本地连接”。192.168.0.3
(在您的例子中)的意思是:“监听整个子网的连接”0.0.0.0
的意思是:“监听来自任何地方的连接。”相关问题 更多 >
编程相关推荐