Python socket非阻塞模块应用示例


Posted in Python onSeptember 12, 2019

本文实例讲述了Python socket非阻塞模块应用。分享给大家供大家参考,具体如下:

一 服务端程序

# 导入模块
import socketserver
import random
# 定义一个类
class MyServer(socketserver.BaseRequestHandler):
  # 如果handle方法出现报错,则会进行跳过
  # setup方法和finish方法无论如何都会进行执行
  # 首先执行setup
  def setup(self):
    pass
  # 然后执行handle
  def handle(self):
    # 定义连接变量
    conn =self.request
    # 发送消息定义
    msg = "Hello World!"
    # 消息发送
    conn.send(msg.encode())
    # 进入循环,不断接收客户端消息
    while True:
      #接收客户端消息
      data = conn.recv(1024)
      # 打印消息
      print(data.decode())
      # 接收到exit,则进行循环的退出
      if data==b'exit':
        break
      conn.send(data)
      conn.send(str(random.randint(1,1000)).encode())
    conn.close()
  # 最后执行finish
  def finish(self):
    pass
if __name__=="__main__":
  # 创建多线程实例
  server = socketserver.ThreadingTCPServer(('127.0.0.1',8888),MyServer)
  # 开启启动多线程,等待连接
  server.serve_forever()

二 客户端程序

# 导入模块
import socket
# 创建实例
client =socket.socket()
#访问的服务端的ip和端口
ip_port=("127.0.0.1",8888)
# 连接主机
client.connect(ip_port)
#定义一个循环,不断发送消息
while True:
  # 接收主机信息
  data = client.recv(1024)
  # 打印接收的数据
  # 此处byte型数据特指python3.x以上
  print(data.decode())
  # 输入发送的消息
  msg_input=input("请输入发送的消息")
  # 消息发送
  client.send(msg_input.encode())
  if msg_input=="exit":
    break
  data = client.recv(1024)
  print(data.decode())

三 运行结果

1 服务端

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socket_tcp_server2.py

DNS

tcp

how are you

2 客户端1

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socket_clent.py

Hello World!

请输入发送的消息DNS

DNS

857

请输入发送的消息

3 客户端2

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socket_clent.py

Hello World!

请输入发送的消息tcp

tcp

879

请输入发送的消息

4 客户端3

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socket_clent.py

Hello World!

请输入发送的消息how are you

how are you

679

请输入发送的消息

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python 输出一个两行字符的变量
Feb 05 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
python编程嵌套函数实例代码
Feb 11 Python
PyQt5每天必学之拖放事件
Aug 27 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
简单了解python关系(比较)运算符
Jul 08 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
Flask框架模板继承实现方法分析
Jul 31 Python
Python实现中英文全文搜索的示例
Dec 04 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
Python的条件锁与事件共享详解
Sep 12 #Python
Python的互斥锁与信号量详解
Sep 12 #Python
python使用sklearn实现决策树的方法示例
Sep 12 #Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 #Python
Python列表删除元素del、pop()和remove()的区别小结
Sep 11 #Python
python conda操作方法
Sep 11 #Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 #Python
You might like
PHP 变量定义和变量替换的方法
2009/07/30 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
python正则表达式实例代码
2020/03/03 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
Python try except finally资源回收的实现
2021/01/25 Python
台湾最大网路书店:博客来
2018/03/18 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
加拿大留学自荐信
2014/01/28 职场文书
高二政治教学反思
2014/02/01 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python