Example #1
0
 def run(self):
     addr = (
         "", PORT
     )  # empty string corresponds to INADDR_ANY and means receiving from any host
     logging.info("UDP server listening on port {}".format(PORT))
     server = UDPServer(addr, Handler)
     server.serve_forever()
Example #2
0
class McastThread(Thread):
    def __init__(self, cfg):
        mcast_addr = cfg.get("mcast.addr", DEFAULT_ADDR)
        mcast_port = cfg.get("mcast.port", DEFAULT_PORT)
        mcast_ttl = cfg.get("mcast.ttl", DEFAULT_TTL)
        Thread.__init__(self, name="McastServer")
        self.server = UDPServer((mcast_addr, mcast_port), McastHandler)
        ## allow other processes to bind to this port+addr
        self.server.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,
                                      1)
        ## set packet TTL (hops)
        ttl = struct.pack('b', mcast_ttl)
        self.server.socket.setsockopt(socket.IPPROTO_IP,
                                      socket.IP_MULTICAST_TTL, ttl)
        ## disable receiving messages I send (no loopback)
        self.server.socket.setsockopt(socket.IPPROTO_IP,
                                      socket.IP_MULTICAST_LOOP, 0)
        ## join the multicast group
        group = socket.inet_aton(mcast_addr)
        mreq = struct.pack('4sL', group, socket.INADDR_ANY)
        self.server.socket.setsockopt(socket.IPPROTO_IP,
                                      socket.IP_ADD_MEMBERSHIP, mreq)
        ##
        ## note - all of the above may need to be wrapped into the server_bind()
        ##  method of a derived UDPServer class
        ##
        logger.info("McastServer thread initialized with config: ...")

    def run(self):
        logger.debug("McastServer thread started.")
        self.server.serve_forever()
Example #3
0
    def handle(self, *args, **options):
        host = settings.HEART_BEAT_SERVER
        port = settings.HEART_BEAT_PORT

        self.stdout.write('Starting Heart Beat receiver')
        self.stdout.write(f'Listening for pings on {host}:{port}/UDP...')

        listener = UDPServer((host, port), RequestHandler)
        listener.serve_forever()
Example #4
0
class Server(threading.Thread):
    class BroadcastHandler(BaseRequestHandler):
        def handle(self):
            # Get message and client socket
            msg, sock = self.request

            if DEBUG:
                print("Router {} received packet: {}".format(
                    self.server.router.name, msg.decode("ascii")))

            msg = json.loads(msg.decode("ascii"))
            sender = msg["sender"]
            timestamp = msg["timestamp"]

            if sender in self.server.router.dead_nodes:
                self.server.router.dead_nodes.remove(sender)

            need_broadcast = False
            if sender not in self.server.router.sent.keys():
                need_broadcast = True
            else:
                last_timestamp = self.server.router.sent[sender]
                if last_timestamp < timestamp:
                    need_broadcast = True

            if need_broadcast:
                self.server.router.router_lock.acquire()

                self.server.router.update_edges(sender, msg["neighbours"])
                self.server.router.sent[sender] = timestamp

                if DEBUG:
                    print("{} will relay for {}".format(
                        self.server.router.name, sender))

                # broadcast to neighbours, but don't send
                # it back to sender, that's a waste
                self.server.router.broadcast_packets(msg, exception={sender})

                self.server.router.router_lock.release()
            else:
                if DEBUG:
                    print("{} will not relay for {}".format(
                        self.server.router.name, sender))

            # resp = "Hello " + msg.decode('ascii')
            # sock.sendto(resp.encode('ascii'), self.client_address)

    def __init__(self, address, port, router):
        threading.Thread.__init__(self)
        self.port = port
        self.udp_server = UDPServer((address, port), Server.BroadcastHandler)
        self.udp_server.router = router

    def run(self):
        self.udp_server.serve_forever()
Example #5
0
def run_server():
    from threading import Thread
    inter = Interval()
    t = Thread(target=inter.serve_forever, daemon=True)
    t.start()
    server = UDPServer(("", SERVER_RECV_PORT), UdpHandler)
    try:
        server.serve_forever()
    except Exception as e:
        logger.warning(e)
Example #6
0
class UDPServerThread(threading.Thread):
    server = None

    def run(self):
        addr = ("", PORT)
        print("UDP server listening on", addr)
        self.server = UDPServer(addr, Handler)
        self.server.serve_forever()

    def shutdown(self):
        self.server.shutdown()
Example #7
0
 def run(self):
     if self.args['local']:
         logger.info("Running Local Mode")
         local_machine()
         server = UDPServer(("", LOCAL_RECV_PORT), UdpHandler)
         try:
             server.serve_forever()
         except Exception as e:
             logger.warning(e)
     else:
         if isServerPortAvailable(SERVER_RECV_PORT):
             logger.info("Running Server Mode")
             run_server()
Example #8
0
 def pair(self):
     """Start app in pairing mode"""
     self.log.setLevel(logging.WARNING)
     self.dm = self.init_dm()
     code = str(randint(100000, 999999))
     print('App running in pairing mode')
     print(f'Pair code:\n\n    {code[:3]}-{code[3:]}    \n')
     udp = UDPServer(('0.0.0.0', self.conf['port']), ServerSearchHandler)
     udp.app = self
     udp.pairing_code = code
     udp.paired_uin = None
     signal.signal(
         signal.SIGINT, lambda a, b: Thread(name='Thread-UDP-Main-Shutdown',
                                            target=udp.shutdown).start())
     udp.serve_forever(0.25)
     paired_uin = udp.paired_uin
     print(f'Successful pairing with device {paired_uin}'
           if paired_uin else 'Pairing failed')
     udp.server_close()
     del udp
     sys.exit(0 if paired_uin else 1)
Example #9
0
class IPComms(Comms):
    def __init__(
        self,
        *,
        queue: Queue,
        server_host: str = HOSTNAME,
        server_port: int = PORT,
        client_host: str = HOSTNAME,
        client_port: int = PORT,
        await_response=False,
    ):
        super().__init__(queue=queue)
        UDPHandler.queue = self.queue
        self.server_address = (server_host, server_port)
        self.server = UDPServer(self.server_address, UDPHandler)
        self.client_address = (client_host, client_port)
        self.await_response = await_response

    def read_telemetry_forever(self):
        self.server.serve_forever()

    def stop(self):
        self.server.shutdown()
        self.server.server_close()

    # XXX
    def send_packet(self, packet: bytes):
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            sock.sendto(packet, self.client_address)
            print(f"Sent packet: {packet}")
            if self.await_response:
                received_data = str(sock.recv(1024), "utf-8")
                print(f"Received: {received_data}")
        finally:
            sock.close()
Example #10
0
#coding=utf-8
'''
Created on 2013-1-11

@author: zhaojp
'''
from socketserver import UDPServer;
from bookexample.lession_21.lession_21_7 import TimeServerHandler;

server = UDPServer(('', 10000), TimeServerHandler);
server.serve_forever();
Example #11
0
 def run(self):
   # start discovery
   addr = ("", discoveryPort)
   print ("listening on %s:%s" % addr)
   server = UDPServer(addr, DiscoveryHandler)
   server.serve_forever()
Example #12
0
                               datefmt="%Y-%m-%d %H:%M:%S")
log = logging.getLogger(__name__)
log.propagate = False
log.setLevel(logging.INFO)
if not log.hasHandlers():
    file_handler = logging.FileHandler(LOG_FILE_NAME)
    file_handler.setFormatter(log_format)
    log.addHandler(file_handler)
    log_on_console = logging.StreamHandler()
    log_on_console.setFormatter(log_format)
    log.addHandler(log_on_console)


class SyslogHandler(BaseRequestHandler):
    """
    Server handler is required to handle udp request.
    See examples: https://www.programcreek.com/python/example/73643/SocketServer.BaseRequestHandler
    """
    def handle(self):
        data = self.request[0].strip().decode("utf-8")
        log.info(f"{self.client_address[0]}: {str(data)}")


if __name__ == "__main__":
    try:
        syslog = UDPServer(("0.0.0.0", 514), SyslogHandler)
        log.info("EZ syslog starts, CTRL-C to stop...")
        syslog.serve_forever(poll_interval=1)
    except KeyboardInterrupt:
        log.info("Ctrl-C detected, exit.")
Example #13
0
        }
        r = json.dumps(r_dict)
        self.wfile.write(r.encode('utf-8'))
        super().finish()


if __name__ == "__main__":
    print('%s start...' % __file__)

    try:
        with open(CONFIG_PATH, 'r') as f:
            config = f.read(1024)
            c_dict = json.loads(config)
            DBPORT = c_dict['dbconfig']['DBPORT']
            DBIP = c_dict['dbconfig']['DBIP']
    except:
        DBIP = 'localhost'
        DBPORT = 9000

    dbserver = UDPServer((DBIP, DBPORT), DBServer)

    try:
        engine = create_engine(r'sqlite:///gateway.db?check_same_thread=False',
                               echo=True)
        Base.metadata.create_all(engine)
        Session = sessionmaker(bind=engine)
    except Exception as e:
        print(e)

    dbserver.serve_forever()
Example #14
0
exit(1)
# 3  创建 UDP 服务器


class TimeHandler(BaseRequestHandler):
    def handle(self):
        print('Got connection from', self.client_address)
        msg, sock = self.request
        resp = time.ctime()
        sock.sendto(resp.encode('ascii'), self.client_address)


if __name__ == '__main__':
    serv = UDPServer(('', 20000), TimeHandler)
    serv.serve_forever()

exit(1)

# 2  创建 tcp 服务器  socketserver


class EchoHandler(BaseRequestHandler):
    def handle(self):
        print('Got connection from', self.client_address)
        while True:
            msg = self.request.recv(8192)
            if not msg:
                break
            self.request.send(msg)
Example #15
0
def UdpServer():
    server = UDPServer(('', 10001), UDPRequestHandler)
    server.serve_forever()
Example #16
0
def test_udp_server():
	serv = UDPServer(('',20000),TimeHandler)
	serv.serve_forever()
Example #17
0
    def on_upgrade(self, url=None, restore=False):
        '''
        @url: 固件源位置
        @restore: 
        '''
        if url:
            # 将固件下载至指定位置
            os.system('wget %s -O %s' %
                      (url, c_dict['systemconfig']['FIRMWARE_PATH']))
        pass


if __name__ == "__main__":
    try:
        with open(CONFIG_PATH, 'r') as f:
            config = f.read(-1)
            c_dict = json.loads(config)
            SYSPORT = c_dict['systemconfig']['SYSPORT']
            SYSIP = c_dict['systemconfig']['SYSIP']
    except:
        SYSIP = 'localhost'
        SYSPORT = 9002
    # 创建服务启动线程
    serviceStartThread = threading.Thread(target=serviceStartHandler,
                                          name='serviceStartHandler')
    sysserver = UDPServer((SYSIP, SYSPORT), SysServer)

    serviceStartThread.start()
    sysserver.serve_forever()
Example #18
0
#    pass

if __name__ == "__main__":
    HOST, PORT = "localhost", 1000

    lst_argv = argv[1:]
    if lst_argv:
        try:
            PORT = int(lst_argv[0])
        except TypeError:
            print("not int")
        finally:
            PORT = 1000

    UPDListener = UDPServer((HOST, PORT), MyUDPHandler)
    UPDListener.serve_forever()

    #UDPSocket = ThreadingUDPServer((HOST, PORT), MyUDPHandler)

    #UDPSocketThread = Thread(target=UDPSocket.serve_forever)
    #UDPSocketThread.daemon = True

    #start_time = time()
    #UDPSocketThread.start()
    #print("start server", "on Port:", PORT, "at", start_time)
    #UDPSocketThread.join(5)
    #while time() < start_time + 10.0:
    #   pass

    #print("stop server")
    #UDPSocket.shutdown()
Example #19
0
    def start(self):
        addr = ("", 50505)
        print("listening on %s:%s" % addr)

        sensor_server = UDPServer(addr, Handler)
        sensor_server.serve_forever()
Example #20
0
cnn = mysql.connector.connect(host="localhost",
                              user="******",
                              passwd="HanbookRadar97",
                              database="diseno")


class GestorSolicitudesHora(BaseRequestHandler):
    def handle(self):
        print('se ah recibido una conexion desde {}'.format(
            self.client_address))
        mensaje, sock = self.request
        respuesta = time.ctime()
        sock.sendto(respuesta.encode('ascii'), self.client_address)

        mensaje = str(mensaje)
        mensaje = mensaje[2:7]
        cordenada = mensaje
        hora = respuesta
        cur = cnn.cursor()
        cur.execute(
            "INSERT INTO gru (cordenada, hora) VALUES ('{}','{}')".format(
                hora, cordenada))
        cnn.commit()
        cur.close()


if __name__ == '__main__':
    servidor = UDPServer(('', 37777), GestorSolicitudesHora)
    print('se ah iniciado el servidor')
    servidor.serve_forever()
Example #21
0
from LogHelp import logger
logger.debug('程序启动')

from socketserver import UDPServer
from SocketHandle import UdpHandle
from WorkThread import Instance
import socket
#from SecurityManager import Security

if __name__ == '__main__':
    #s=Security()
    UDPSERVER = UDPServer(('', 2425), UdpHandle)

    UDPSERVER.socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    Instance.startMessage(UDPSERVER.socket.sendto)
    UDPSERVER.serve_forever()
Example #22
0
    def start(self):
        addr = ("", 50505)
        print("listening on %s:%s" % addr)

        sensor_server = UDPServer(addr, Handler)
        sensor_server.serve_forever()
Example #23
0
from socketserver import (UDPServer as UDP,
        BaseRequestHandler as SRH)
from time import ctime

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

class MyRequestHandler(SRH):
    def handle(self):
        print ('...msg from:', self.client_address)
        data = self.request[0].strip()
        socket = self.request[1]
        socket.sendto(bytes(ctime() + " : ", 'utf-8') + data, self.client_address)

udpServ = UDP(ADDR, MyRequestHandler)
print("waiting for mdg")
udpServ.serve_forever()
def time_server():
    server = UDPServer(('', 2000), TimeHanlder)
    server.serve_forever()
Example #25
0
            tr=0
            for e in range(0,4):
                if licz[e]!=0:
                    kier = e
            if licz==[0,0,0,0] and tab[g][x][y]==1:
                tr=1
                ZatopStatek(tab, kraniec[0], kraniec[1], gracz, kier)
                print("Trafiony zatopiony")
                return 1    
                
            elif ZliczStatek(tab[g+1],kraniec[0], kraniec[1],kier)==tab[g][kraniec[0]][kraniec[1]]:
                    print("Trafiony zatopiony")
                    return 1
                    ZatopStatek(tab, kraniec[0], kraniec[1], gracz, kier)
                    tr=1
            if tr==0:
                print("trafiony")
                return 1
                tab[(gracz+2)%3][x][y] = 1
    else:
        print("Już raz strzelałeś w to miejsce, wybierz inne.")
        return 1


        
if __name__ == "__main__":
    host, port = "localhost", 2223
    server = UDPServer((host, port), MyUDPHandler)
    server.serve_forever()
    
#!/usr/bin/env python
import logging
from socketserver import UDPServer, BaseRequestHandler

logging.basicConfig(level=logging.INFO, format='%(message)s')


class SyslogUDPHandler(BaseRequestHandler):
    def handle(self):
        data = bytes.decode(self.request[0].strip())
        socket = self.request[1]
        print("%s : " % self.client_address[0], str(data))
        logging.info(str(data))


if __name__ == "__main__":
    try:
        server = UDPServer(('0.0.0.0', 514), SyslogUDPHandler)
        server.serve_forever(poll_interval=0.5)
    except (IOError, SystemExit):
        raise
    except KeyboardInterrupt:
        print("Crtl+C Pressed. Shutting down.")