Unable to change port using listen method
programsounds opened this issue · 0 comments
programsounds commented
The listen method does not seem to change the current port. Please see below for a code snippet where I try to change a port with the changePort method. If defaut=True
, I get this error:
RuntimeError: Only one default socket authorized! Please set default=False to other calls to listen()
And, if defaut=False
, I just stop receiving messages on the port. Is this a sort of bug, or is there a right way to change port with OSCpy?
OS: macOS 12.6.6
Python: 3.9.16
OSCpy: 0.6.0
from oscpy.server import OSCThreadServer
SERVER_ADDRESS = "127.0.0.1"
PORT = 3000
OSC_ADDRESS = b"/testAddress"
class OSCTest:
def __init__(self):
self.server = OSCThreadServer()
self.socket = self.server.listen(address=SERVER_ADDRESS,
port=PORT, default=True)
self.server.bind(OSC_ADDRESS, self.handler)
def handler(self, *data):
print(data)
def close(self):
self.server.stop(self.socket)
def changePort(self, newPort):
"""Change the server port to a newPort."""
# Close the current port
self.server.stop(self.socket)
# Listen on the new port
self.socket = self.server.listen(address=SERVER_ADDRESS,
port=newPort, default=False)
# Re-bind the server to handle incoming OSC messages
self.server.bind(OSC_ADDRESS, self.handler)