网络编程
位置:首页>> 网络编程>> Python编程>> python实现单线程多任务非阻塞TCP服务端

python实现单线程多任务非阻塞TCP服务端

作者:Vathe  发布时间:2021-05-29 07:26:52 

标签:python,单线程,TCP,服务端

本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下


# coding:utf-8
from socket import *

# 1.创建服务器socket
sock = socket(AF_INET, SOCK_STREAM)

# 2.绑定主机和端口
addr = ('', 7788) #
sock.bind(addr)

# 3. 设置最大监听数目,并发
sock.listen(10)

# 4. 设置成非阻塞
sock.setblocking(False)
# 保存客户端socket
clientAddrList = []
# print(sock.)

while 1:
 try:
   clientSocket, clientAddr = sock.accept()
 except:
   pass
 else:
   print("一个新客户端到来:%s" % str(clientAddr))
   clientSocket.setblocking(False)
   clientAddrList.append((clientSocket, clientAddr))

for clientSocket, clientAddr in clientAddrList:
   try:
     recvData = clientSocket.recv(1024)
   except:
     pass
   else:
     if len(recvData) > 0:
       print("%s:%s" % (str(clientAddr), recvData))
     else:
       clientSocket.close()
       clientAddrList.remove((clientSocket, clientAddr))
       print("%s 已经下线" % str(clientAddr))
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com