如何让我的python OSC服务器监听我自己的IP地址?

时间:2016-04-15 21:50:32

标签: python network-programming udp osc

我是网络新手。

我有一个使用pyOSC接收OSC消息的简单python脚本,但当我想在我的路由器网络内部监听时,使用localhost127.0.0.1不起作用。当我使用我的本地网络IP 192.168.178.xx时,它就像一个魅力。

我认为localhost / 127.0.0.1只在我自己的机器/网络设备(?)内部工作。

但是如何动态更改我的接收地址到我最近的IP地址?

这里是代码(不工作localhost

import OSC, threading

receive_address = ('localhost', 12035) 
send_address = '192.168.178.20', 12036 

# Initialize the OSC server and the client.
s = OSC.OSCServer(receive_address)
c = OSC.OSCClient()
c.connect(send_address)

# simple send function for multiple arguments
def send_osc(addr, *stuff):
    msg = OSC.OSCMessage()
    msg.setAddress(addr)
    for item in stuff:
        msg.append(item)
    c.send(msg)

# simple callback functions
def answer_handler(addr, tags, stuff, source):

    print('inside incoming_handler')
    print "---"
    print "received new osc msg from %s" % OSC.getUrlStr(source)

# Start OSCServer in extra thread
st = threading.Thread( target = s.serve_forever )
st.start()
# adding callback functions to listener
s.addMsgHandler("/GAMEMASTER", answer_handler)

1 个答案:

答案 0 :(得分:0)

我在这里找到了一些解决方案: Python - Get localhost IP

特别是用户亚历山大的回答

如果有更优雅的方式,我很高兴看到它。 上述解决方案适用于我的代码,但似乎有点被黑了。