博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现单线程多任务非阻塞TCP服务端
阅读量:6413 次
发布时间:2019-06-23

本文共 945 字,大约阅读时间需要 3 分钟。

代码

# coding:utf-8from socket import *# 1.创建服务器socketsock = socket(AF_INET, SOCK_STREAM)# 2.绑定主机和端口addr = ('', 7788)  #sock.bind(addr)# 3. 设置最大监听数目,并发sock.listen(10)# 4. 设置成非阻塞sock.setblocking(False)# 保存客户端socketclientAddrList = []# 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))

 

转载于:https://www.cnblogs.com/vathe/p/7001127.html

你可能感兴趣的文章
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>
Redis开发运维实践高可用和集群架构与实践(二)
查看>>
程序员的常见“谎话”:对,这是一个已知 Bug
查看>>
如何侦查SQL执行状态
查看>>
CentOS 7 命令行如何连接无线网络
查看>>
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>
linux centos7.2 安装mysq,nginx,php
查看>>
intellij IDEA配置tomcat
查看>>
myrocks之事务处理
查看>>
mysql分区
查看>>
基于pgrouting的路径规划之一
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>