Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import select
- import socket
- import sys
- def serve(ports):
- listeners, sockets = [], []
- for port in ports:
- listener = socket.socket()
- listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- listener.bind(('127.0.0.1', port))
- listener.setblocking(False)
- listener.listen(5)
- listeners.append(listener)
- sockets.append(listener)
- print(listener.getsockname(), ' listening')
- while True:
- r, w, x = select.select(sockets, sockets, sockets)
- for sock in r:
- if sock in listeners:
- c, a = sock.accept()
- print(sock.getsockname(), ' <- ', a)
- sockets.append(c)
- else:
- buf = sock.recv(80)
- if not buf:
- print(sock.getpeername(), ' EOF')
- sockets.remove(sock)
- else:
- print(sock.getpeername(), ' <- ', buf)
- for sock in w:
- pass
- for sock in x:
- print(sock.getpeername(), ' error')
- sockets.remove(sock)
- if __name__ == '__main__':
- serve(int(arg) for arg in sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement