python实现的多任务版udp聊天器功能案例


Posted in Python onNovember 13, 2019

本文实例讲述了python实现的多任务版udp聊天器。分享给大家供大家参考,具体如下:

python实现的多任务版udp聊天器功能案例

说明

编写一个有2个线程的程序
线程1用来接收数据然后显示
线程2用来检测键盘数据然后通过udp发送数据

要求

实现上述要求
总结多任务程序的特点

参考代码:

import socket
import threading
def send_msg(udp_socket):
  """获取键盘数据,并将其发送给对方"""
  while True:
    # 1. 从键盘输入数据
    msg = input("\n请输入要发送的数据:")
    # 2. 输入对方的ip地址
    dest_ip = input("\n请输入对方的ip地址:")
    # 3. 输入对方的port
    dest_port = int(input("\n请输入对方的port:"))
    # 4. 发送数据
    udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(udp_socket):
  """接收数据并显示"""
  while True:
    # 1. 接收数据
    recv_msg = udp_socket.recvfrom(1024)
    # 2. 解码
    recv_ip = recv_msg[1]
    recv_msg = recv_msg[0].decode("utf-8")
    # 3. 显示接收到的数据
    print(">>>%s:%s" % (str(recv_ip), recv_msg))
def main():
  # 1. 创建套接字
  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  # 2. 绑定本地信息
  udp_socket.bind(("", 7890))
  # 3. 创建一个子线程用来接收数据
  t = threading.Thread(target=recv_msg, args=(udp_socket,))
  t.start()
  # 4. 让主线程用来检测键盘数据并且发送
  send_msg(udp_socket)
if __name__ == "__main__":
  main()

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

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

Python 相关文章推荐
pycharm中连接mysql数据库的步骤详解
May 02 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
python selenium 弹出框处理的实现
Feb 26 Python
学习python的前途 python挣钱
Feb 27 Python
python lxml中etree的简单应用
May 10 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
Django ORM 查询管理器源码解析
Aug 05 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
Python序列化pickle模块使用详解
Mar 05 Python
python ETL工具 pyetl
Jun 07 Python
利用python实现PSO算法优化二元函数
Nov 13 #Python
使用python制作一个解压缩软件
Nov 13 #Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 #Python
基于python实现把图片转换成素描
Nov 13 #Python
Django连接数据库并实现读写分离过程解析
Nov 13 #Python
Pandas操作CSV文件的读写实现方法
Nov 13 #Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 #Python
You might like
PHP高级OOP技术演示
2009/08/27 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
vue实现购物车加减
2020/05/30 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
Python创建日历实例
2014/08/21 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python 生成图形验证码的方法示例
2018/11/11 Python
对python中Json与object转化的方法详解
2018/12/31 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
python实现五子棋游戏
2019/06/18 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
木工主管岗位职责
2013/12/08 职场文书
售后专员岗位职责
2013/12/08 职场文书
经典导游欢迎词
2015/01/26 职场文书
实验室安全管理制度
2015/08/05 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers