php io select,Python IO多路复用之——select方案服务端和客户端代码【python源码详解】...

准备文件:

IO.py  服务端代码

tcp_c.py 客户端代码

IO.py 代码:

from select import * #引入 select 模块

from socket import * #引入 socket 模块

s = socket() #实例化一个socket 对象

s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #设置端口可重用

s.bind(('0.0.0.0',8888)) #绑定端口号 8888

s.listen(5) #设置监听队列

rlist = [s] #设置读列表(被动列表)

wlist = [] #设置写列表(主动列表)

xlist = [] #设置出错列表

while True: #循环等待客户端连接

rs,ws,xs = select(rlist, wlist, xlist) #将三个列表托管给select 对象

for r in rs: #遍历 读列表(收到客户端请求的对象)

if r is s: # 如果是 s 套接字对象接收到请求,则说明是新的用户连接

c,addr = s.accept() #处理客户端请求,将连接套接字赋值给 c 用户地址赋值给 addr

print(addr,'连接至s') #打印连接提示信息

rlist.append(c) #将连接套接字添加进 读列表,以便保持持续的连接

else: #如果不是 s 套接字对象接收的请求,则说明是已有的现成连接

data = r.recv(1024) #接收客户端传过来的数据

if not data:#如果没有发送过来任何数据

r.close() #将当前套接字关闭

rlist.remove(r) #将当前套接字移除出rlist列表,使 select 不再监管此对象

else: #如果有发送过来的数据

print(data.decode()) #打印出客户端发送过来的数据

r.send('已收到你的消息'.encode()) #给客户端回复数据

for w in ws: #遍历 写列表(主动发起的列表)  只要此列表有对象,会马上触发

pass #由于基本上用不到这个列表,所以此处不写任何代码

for x in xs: #遍历 发生错误的套接字列表

pass #由于基本上用不到这个列表,所以此处不写任何代码

f6f76d875701219f6c00251d9aeffbee.png

tcp_c.py代码:

from socket import *

import time

#创建套接字

sockfd = socket(AF_INET,SOCK_STREAM)

#发起连接

server_addr = ('127.0.0.1',8888)

sockfd.connect(server_addr)

i = 0

while True:

data = input('发送>>')

#data = '哈哈'+str(i)

sockfd.send(data.encode())

data = sockfd.recv(1024)

print('接收到:',data.decode(),i)

i += 1

sockfd.close()

91e2f86f2b51bcbb3f8472ce38d6193a.png

运行结果:

ae6eb995a92e81da3913279c18317dcf.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 数字图像滤波,数字图像处理 (基于Matlab) 滤波

《数字图像处理》实验报告一、实验目的(不少于200字)一、第一个实验用的是各种空间域的方式来滤波,也就是直接把图像和空间滤波器的模板做卷积,当然图像处理很重要的一个部分还有频域的处理。这就涉及到图像的傅里叶变换,通过将空域内的图像傅…

matlab 8.4,《DSP using MATLAB》Problem 8.42

代码:%% ------------------------------------------------------------------------%% Output Info about this m-filefprintf(‘\n***********************************************************\n‘);fprintf(‘ Problem 8.42 \n\n‘);banner();%% ------------…

lua的string.gsub初使用

今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下。 以下是lua5.1的官方文档介绍。 string.gsub (s, pattern, repl [, n])Returns a copy of s in which all occurrences of the pattern have been replaced by a …

php程序变量,PHP 变量

PHP 变量变量是用于存储信息的"容器":实例$x5;$y6;$z$x$y;echo $z;?>运行实例 与代数类似x5y6zxy在代数中,我们使用字母(如 x),并给它赋值(如 5)。从上面的表达式 zxy ,我们可以计算出 z 的值为 11。在 PHP 中&…

漏洞:WebRTC 泄漏用户IP

WebRTC又称为“网页即时通信”,是一组API函数,它经过W3C组织的认证,支持浏览器之间的语音通话、视频聊天和P2P模式分享文件。 这个协议主要包括:getUserMedia,RTCPeerConnection,RTCDataChannels&…

怎么在电脑安装php文件夹在哪个文件夹,php进行文件上传时找不到临时文件夹怎么办,电脑自动保存的文件在哪里...

php进行文件上传时找不到临时文件夹怎么办PHP上传文件时找不到临时文件夹怎么办,php上传文件时找不到临时文件夹的解决方案:先打开php.ini配置文件;然后修改内容[upload _ tmp _ dir’ c :/windows/temp ‘],文件夹路径要根据自己…

【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。...

【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术 作者:西川善司日文链接 http://www.4gamer.net/games/202/G020288/20150811091/计算机图形和交互技术的学术大会【SIGGRAPH 2015】,在北美时间的8月9日到13日召…

php边框圆角,css3圆角和圆角边框使用方法总结

在CSS3出现之前,想要实现圆角的效果可以通过图片或者用margin属性实现,传统的圆角生成方案,需要多张图片作为背景图案。CSS3出现以后,就不需要浪费时间去制作多张图片了,大大的减少了工作量,提高了网页的性…

php中二进制函数,PHP-----函数和二进制

递归-----函数本身调用本身。每一个栈中的变量都是独立的,不受外部变量的影响,除非传参。这一点和Js不一样。在一个php页面中要引用其他的php文件可以使用require,require_once或者include,include_once;require引入的文件如果不存…

php 文件类型 html,HTML的文档类型怎么选择

声明帮助浏览器正确地显示网页。声明(推荐学习:HTML入门教程)Web 世界中存在许多不同的文档。只有了解文档的类型,浏览器才能正确地显示文档。HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确…

mysql安装im,mysql安装记录

zip下载及安装教程:https://blog.csdn.net/qq_41307443/article/details/79839558我按照步骤操作遇到了一些问题记录一下:1 没有 ini ,文件,自己建立一个新的 .ini文件。自己的系统没显示后缀,我配置了一下;2 启动服务…

python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析

标签:pattern div mat txt 保存 关于 json result with open关于正则表达式的更多用法,可参考链接:https://blog.csdn.net/weixin_40040404/article/details/81027081一、正则表达式:1.常用正则匹配:U…

前端学习(1598):ref转发

第一种方式 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&…

PHP opencv Dlib,Face_Recognition

Face_Recognition使用Opencv和Dlib实现基于视频的人脸识别文件夹介绍1、Resources\pictures此文件夹下存放人脸保存结果2、Resources\video此文件夹下存放带标注视频保存结果3、Resources\faceS此文件夹下存放各个人物的图片&#xff0c;用于人脸库的建立4、Resources\featureD…

Examining Open vSwitch Traffic Patterns

In this post, I want to provide some additional insight on how the use of Open vSwitch (OVS) affects—or doesn’t affect, in some cases—how a Linux host directs traffic through physical interfaces, OVS internal interfaces, and OVS bridges. This is somethi…