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 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
python将数组n等分的实例
Dec 02 Python
基于python使用tibco ems代码实例
Dec 20 Python
python 回溯法模板详解
Feb 26 Python
Python中私有属性的定义方式
Mar 05 Python
django 扩展user用户字段inlines方式
Mar 30 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
python编写实现抽奖器
Sep 10 Python
Django admin组件的使用
Oct 24 Python
Django 实现jwt认证的示例
Apr 30 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在线代理转向代码
2012/05/05 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
python strip()函数 介绍
2013/05/24 Python
Python字典操作简明总结
2015/04/13 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
python对Excel的读取的示例代码
2020/02/14 Python
python中数字是否为可变类型
2020/07/08 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
毕业生医学检验求职信
2013/10/16 职场文书
大学自我鉴定
2013/12/20 职场文书
大课间活动实施方案
2014/03/06 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
城管综合整治方案
2014/05/01 职场文书
年终奖发放方案
2014/06/02 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
倡议书的格式写法
2015/04/28 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS