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 相关文章推荐
python中mechanize库的简单使用示例
Jan 10 Python
web.py中调用文件夹内模板的方法
Aug 26 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python中字典的基础知识归纳小结
Aug 19 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Python正则表达式急速入门(小结)
Dec 16 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
Python如何根据时间序列数据作图
May 12 Python
Python实现双向链表基本操作
May 25 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
深入分析PHP引用(&)
2014/09/04 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
js树形控件脚本代码
2008/07/24 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
Python实现自动上京东抢手机
2018/02/06 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
物流管理专业职业生涯规划书
2014/01/06 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
学习决心书
2014/03/11 职场文书
安全标语口号
2014/06/09 职场文书
毕业生见习报告总结
2014/11/08 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2014年招商工作总结
2014/11/22 职场文书
银行员工考核评语
2014/12/31 职场文书
老公保证书怎么写
2015/02/26 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python