被动套接字和新建出套接字的区别
单任务,单线程,非阻塞!!!!服务器!
#2018-6-14 16:51:25 #!--*--coding:utf-8 --*-- ''' 单进程,单任务 少的可以,多的受不了 2018-6-14 18:44:252 ''' from socket import * #1.创建socket serSocket = socket(AF_INET, SOCK_STREAM) #2.绑定本地ip以及port localAddr = ('', 7788) serSocket.bind(localAddr) #3:让这个socket 变为非阻塞 # serSocket.setblocking(False) #4.将socket变为监听(被动)套接字 serSocket.listen(5) #用来保存所有已经连接的客户端信息 clientAddrList =[] while True: #等待一个新的客户端的到来(即完成三次握手的客户端) try: clientSocket,clientAddr = serSocket.accept() except: pass else: print("一个新的客户端到来:%s"%str(clientAddr)) clientSocket.setblocking(False) clentAddrList.append((clientSocket,clientAddr)) for clientSocket,clientAddr in clientAddrList: try: recvData = clientScoket.recv(1024) except: pass else: if len(recvData)>0: print("%s:%s"%(str(clientAddr),recvData)) else: clientScoket.close() clientAddrList.remove((clientScoket,clientAddr)) print("%s 已下线"%str(clientAddr))