01 #!/usr/bin/env python
02 import sys
03 from socket import *
04 from select import select
05
06 host  = None
07 port  = sys.argv[1]
08 flags = AI_PASSIVE
09
10 serverSockets = []
11
12 for addrinfo in getaddrinfo(host, port, AF_UNSPEC, SOCK_STREAM, 0, flags):
13     family, socktype, proto, canonname, sockaddr = addrinfo
14     serverSocket = socket(family, socktype, proto)
15     if family==AF_INET6:
16       serverSocket.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 1)
17     serverSocket.bind(sockaddr)
18     serverSocket.listen(1)
19     serverSockets.append(serverSocket)
20
21
22 while True:
23     readable, writable, special = select( serverSockets, [], [])
24     for readSocket in readable:
25         connectionSocket, connectionAddress = readSocket.accept()
26         connectionSocket.send("Hello {0}\n".format(connectionAddress).encode("ascii"))
27         connectionSocket.close()
