listing14-6.py 672 B

1234567891011121314151617181920212223242526272829
  1. import socket, select
  2. s = socket.socket()
  3. host = socket.gethostname()
  4. port = 1234
  5. s.bind((host, port))
  6. s.listen(5)
  7. inputs = [s]
  8. while True:
  9. rs, ws, es = select.select(inputs, [], [])
  10. for r in rs:
  11. if r is s:
  12. c, addr = s.accept()
  13. print('Got connection from', addr)
  14. inputs.append(c)
  15. else:
  16. try:
  17. data = r.recv(1024)
  18. disconnected = not data
  19. except socket.error:
  20. disconnected = True
  21. if disconnected:
  22. print r.getpeername(), 'disconnected'
  23. inputs.remove(r)
  24. else:
  25. print data