Skip to content

Instantly share code, notes, and snippets.

@Averroes
Created April 10, 2015 17:14
Show Gist options
  • Select an option

  • Save Averroes/9b5ee827d11cf67b651b to your computer and use it in GitHub Desktop.

Select an option

Save Averroes/9b5ee827d11cf67b651b to your computer and use it in GitHub Desktop.
event driven io explained
import socket
import time
from eventhandler import EventHandler, event_loop
class UDPServer(EventHandler):
def __init__(self, address):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind(address)
def fileno(self):
return self.sock.fileno()
def wants_to_receive(self):
return True
class UDPTimeServer(UDPServer):
def handle_receive(self):
msg, addr = self.sock.recvfrom(1)
self.sock.sendto(time.ctime().encode('ascii'), addr)
class UDPEchoServer(UDPServer):
def handle_receive(self):
msg, addr = self.sock.recvfrom(8192)
self.sock.sendto(msg, addr)
if __name__ == '__main__':
handlers = [ UDPTimeServer(('',14000)), UDPEchoServer(('',15000)) ]
event_loop(handlers)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment