【问题标题】:Python OSC, Query / Close active threadPython OSC,查询/关闭活动线程
【发布时间】:2017-04-07 16:02:15
【问题描述】:

我正在使用相对简单的 python 执行,使用 OSC 模块,以便将代码从一个应用程序“发送”到另一个应用程序。

import OSC
import threading

#------OSC Server-------------------------------------#
receive_address = '127.0.0.1', 9002

# OSC Server. there are three different types of server. 
s = OSC.ThreadingOSCServer(receive_address)


# define a message-handler function for the server to call.
def printing_handler(addr, tags, stuff, source):
    if addr=='/coordinates':
        print "Test", stuff

s.addMsgHandler("/coordinates", printing_handler)

def main():
    # Start OSCServer
    print "Starting OSCServer"
    st = threading.Thread(target=s.serve_forever)
    st.start()
main()

运行一次,就可以正常工作,监听端口 9002。

但是,运行两次,会返回ERROR:

socket.error: [Errno 10048] 每个套接字地址(协议/网络地址/端口)通常只允许使用一次

我的目标是:

  1. 能够查询活动线程的端口
  2. 关闭它们

我已经尝试了以下...

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex(('127.0.0.1', 900socket2))
print 'RESULT: ', result
s.close()

但是给了我不成功的结果。 (活动和非活动端口的线程均返回 10061)

【问题讨论】:

  • 你好吗terminateOSCServerst.Thread
  • 我没有。我该怎么办?
  • 阅读 OSC 文档,什么都没有。阅读源码有shutdown(),试一试。我假设没有关闭没有释放端口。

标签: python sockets osc


【解决方案1】:

Python » 文档socketserver.BaseServer

关机()

Tell the serve_forever() loop to stop and wait until it does.

server_close()

Clean up the server. May be overridden.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多