1 import socket
2 import select
3
4 sk1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5 sk1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
6 sk1.bind(('127.0.0.1',8002))
7 sk1.listen(5)
8 sk1.setblocking(0)
9
10 inputs = [sk1,]
11
12 while True:
13 readable_list, writeable_list, error_list = select.select(inputs, [], inputs, 1)
14 for r in readable_list:
15 # 当客户端第一次连接服务端时
16 if sk1 == r:
17 print 'accept'
18 request, address = r.accept()
19 request.setblocking(0)
20 inputs.append(request)
21 # 当客户端连接上服务端之后,再次发送数据时
22 else:
23 received = r.recv(1024)
24 # 当正常接收客户端发送的数据时
25 if received:
26 print 'received data:', received
27 # 当客户端关闭程序时
28 else:
29 inputs.remove(r)
30
31 sk1.close()