day_6.14py网络编程

被动套接字和新建出套接字的区别

 

单任务,单线程,非阻塞!!!!服务器!

#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))

 

posted @ 2018-06-14 16:02  我想喝杨枝甘露~  阅读(120)  评论(0编辑  收藏  举报