Skip to content
Snippets Groups Projects
Commit ffb76bf0 authored by KERDREUX Jerome's avatar KERDREUX Jerome
Browse files

Cleanup

parent 8381cc87
No related branches found
No related tags found
No related merge requests found
...@@ -3,24 +3,25 @@ import socket ...@@ -3,24 +3,25 @@ import socket
import struct import struct
from xaal.lib import MessageFactory,config,helpers from xaal.lib import MessageFactory, config, helpers
ADDR = config.address
PORT = config.port
ADDR = '224.0.29.200'
PORT = 1236
class EchoServerProtocol(asyncio.Protocol): class EchoServerProtocol(asyncio.Protocol):
def __init__(self,on_con_lost): def __init__(self, on_con_lost):
self.on_con_lost = on_con_lost self.on_con_lost = on_con_lost
self.mf = MessageFactory(config.key) self.mf = MessageFactory(config.key)
helpers.setup_console_logger() helpers.setup_console_logger()
def connection_made(self, transport): def connection_made(self, transport):
#import pdb;pdb.set_trace() # import pdb;pdb.set_trace()
sock = transport.get_extra_info('socket') sock = transport.get_extra_info('socket')
(addr,port) = sock.getsockname() (addr, port) = sock.getsockname()
mreq = struct.pack('4sl',socket.inet_aton(addr),socket.INADDR_ANY) mreq = struct.pack('4sl', socket.inet_aton(addr), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP,socket.IP_ADD_MEMBERSHIP,mreq) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
sock.setsockopt(socket.IPPROTO_IP,socket.IP_MULTICAST_TTL,10) sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 10)
self.transport = transport self.transport = transport
def error_received(self, exc): def error_received(self, exc):
...@@ -29,17 +30,15 @@ class EchoServerProtocol(asyncio.Protocol): ...@@ -29,17 +30,15 @@ class EchoServerProtocol(asyncio.Protocol):
def connection_lost(self, exc): def connection_lost(self, exc):
print("Connection closed") print("Connection closed")
self.on_con_lost.set_result(True) self.on_con_lost.set_result(True)
def datagram_send(self,data): def datagram_send(self, data):
self.transport.sendto(data,(ADDR,PORT)) self.transport.sendto(data, (ADDR, PORT))
def datagram_received(self, data, addr): def datagram_received(self, data, addr):
#print('Received %r from %s' % (data, addr)) # print('Received %r from %s' % (data, addr))
msg = self.mf.decode_msg(data) msg = self.mf.decode_msg(data)
msg.dump() if msg:
msg.dump()
def connection_lost(self, exc):
print(f"Connexion lost {exc}")
async def main(): async def main():
...@@ -47,15 +46,17 @@ async def main(): ...@@ -47,15 +46,17 @@ async def main():
print("Starting UDP server") print("Starting UDP server")
on_con_lost = loop.create_future() on_con_lost = loop.create_future()
transport, protocol = await loop.create_datagram_endpoint( lambda: EchoServerProtocol(on_con_lost), local_addr=(ADDR, PORT),reuse_port=True) transport, protocol = await loop.create_datagram_endpoint(
lambda: EchoServerProtocol(on_con_lost), local_addr=(ADDR, PORT), reuse_port=True
)
try: try:
await asyncio.sleep(3600) # Serve for 1 hour. await asyncio.sleep(3600) # Serve for 1 hour.
finally: finally:
transport.close() transport.close()
try: try:
asyncio.run(main()) asyncio.run(main())
except KeyboardInterrupt: except KeyboardInterrupt:
print("Bye Bye") print("Bye Bye")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment