The library supports sending and receiving of Jamulus protocol messages.
- Fetch server list from central (directory) server
import jamulus
server = ("<hostname>", jamulus.DEFAULT_PORT)
jc = jamulus.JamulusConnector()
jc.sendto(server, "CLM_REQ_SERVER_LIST")
try:
while True:
addr, key, count, values = jc.recvfrom(timeout=1)
if key == "CLM_SERVER_LIST":
for server in values:
print(f'{server["name"]} ({server["max_clients"]})')
except TimeoutError:
pass
- Simple implementation of a Jamulus Central Server
- Jamulus Servers can register / unregister
- Jamulus Clients can get list of registered servers
- Collect server lists from multiple Jamulus Central Servers
- Filters servers by their country ID
- Jamulus Clients can get filtered list of servers
- Simulates a Jamulus Server
- Simulates a Jamulus Client connecting to a Jamulus Server
- The implementation is not proven / tested to be 100% reliable
- Certain exceptions are not handled and can crash the process
These projects were very helpful to understand the Jamulus protocol: