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

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

本文实例为大家分享了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))
标签:python,单线程,TCP,服务端
0
投稿

猜你喜欢

  • Python利用pywin32实现自动操作电脑

    2024-01-03 03:35:59
  • python使用KNN算法手写体识别

    2022-06-28 05:30:56
  • Python minidom模块用法示例【DOM写入和解析XML】

    2021-04-22 23:28:19
  • Pytorch中.new()的作用详解

    2023-12-11 10:28:54
  • python产生模拟数据faker库的使用详解

    2022-05-25 22:43:35
  • 整理及优化CSS代码的七个原则[译]

    2009-04-23 12:35:00
  • Gorm更新零值问题解决思路与过程

    2024-04-25 13:18:25
  • java代码实现mysql分表操作(用户行为记录)

    2024-01-17 22:57:09
  • Python编写带选项的命令行程序方法

    2023-11-18 20:47:35
  • Go语言指针用法详解

    2023-08-05 17:06:36
  • Python操作多维数组输出和矩阵运算示例

    2022-11-30 03:44:18
  • Python爬取梨视频的示例

    2022-05-24 08:12:33
  • Pycharm之快速定位到某行快捷键的方法

    2022-06-20 14:07:53
  • Python数据结构与算法之算法分析详解

    2022-05-15 19:03:46
  • Python操作MySQL模拟银行转账

    2022-05-19 21:23:11
  • Vue.js框架实现购物车功能

    2024-04-30 10:46:59
  • Python简单基础小程序的实例代码

    2021-03-29 21:17:59
  • 使用Python matplotlib绘制简单的柱形图、折线图和直线图

    2022-04-08 02:13:19
  • python3使用pandas获取股票数据的方法

    2023-01-04 15:01:15
  • 解决python3读取Python2存储的pickle文件问题

    2023-03-18 14:20:30
  • asp之家 网络编程 m.aspxhome.com