2015-09-23 78 views
4

我對python很陌生,對pyOSC也不太熟悉。有人可以發佈一個簡單的例子,說明如何從我的電腦發送字符串消息到另一臺計算機?我看過這個pyOSC link這給了我一些指導,但我不明白爲什麼addressSet()需要「/啓動」。這是接收另一端的消息還是其他的功能?如何使用pyOSC發送消息?

我非常感謝您提供的任何指導!

回答

10

OSC具有消息地址的概念,該消息地址與您要連接的設備的網絡地址不同。這個想法是,你發送的消息可以被路由到網絡連接另一端的許多不同處理程序之一。每個處理程序都有自己的地址,通常用'/'前綴來指定。

使用相同的客戶端代碼from the question you referenced

import OSC 

c = OSC.OSCClient() 
c.connect(('127.0.0.1', 57120)) # localhost, port 57120 
oscmsg = OSC.OSCMessage() 
oscmsg.setAddress("/startup") 
oscmsg.append('HELLO') 
c.send(oscmsg) 

首先,運行該服務器的代碼:

import OSC 

def handler(addr, tags, data, client_address): 
    txt = "OSCMessage '%s' from %s: " % (addr, client_address) 
    txt += str(data) 
    print(txt) 

if __name__ == "__main__": 
    s = OSC.OSCServer(('127.0.0.1', 57120)) # listen on localhost, port 57120 
    s.addMsgHandler('/startup', handler)  # call handler() for OSC messages received with the /startup address 
    s.serve_forever() 

然後,從一個不同的終端運行客戶端。在服務器端,你應該得到的東西,如:

OSCMessage '/startup' from ('127.0.0.1', 55018): ['HELLO'] 

獲得更深入地瞭解如何使用pyOSC是隻讀取源的最佳方式。這一切都在OSC.py中,不會太長。在文件底部有一個測試方法,它提供了一個相當詳細的例子,說明如何使用大多數(如果不是全部的話)協議功能。

+0

太棒了!非常感謝。 – hlupico

+0

此解決方案適用於至少客戶端。請@hlupico標記它綠色! :) –