Advertisement
Guest User

Untitled

a guest
Oct 29th, 2012
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   #!/usr/bin/python
  2.  
  3. import select
  4. import socket
  5. import sys
  6.  
  7. def serve(ports):
  8.   listeners, sockets = [], []
  9.   for port in ports:
  10.     listener = socket.socket()
  11.     listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  12.     listener.bind(('127.0.0.1', port))
  13.     listener.setblocking(False)
  14.     listener.listen(5)
  15.     listeners.append(listener)
  16.     sockets.append(listener)
  17.     print(listener.getsockname(), ' listening')
  18.   while True:
  19.     r, w, x = select.select(sockets, sockets, sockets)
  20.     for sock in r:
  21.       if sock in listeners:
  22.         c, a = sock.accept()
  23.         print(sock.getsockname(), ' <- ', a)
  24.         sockets.append(c)
  25.       else:
  26.         buf = sock.recv(80)
  27.         if not buf:
  28.           print(sock.getpeername(), ' EOF')
  29.           sockets.remove(sock)
  30.         else:
  31.           print(sock.getpeername(), ' <- ', buf)
  32.     for sock in w:
  33.       pass
  34.     for sock in x:
  35.       print(sock.getpeername(), ' error')
  36.       sockets.remove(sock)
  37.  
  38. if __name__ == '__main__':
  39.   serve(int(arg) for arg in sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement