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程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
Python实现简单登录验证
Apr 13 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
python实现输入数字的连续加减方法
Jun 22 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
python同时遍历两个list用法说明
May 02 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
node.js中的require使用详解
2014/12/15 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python Pillow图像处理方法汇总
2019/10/16 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
爱岗敬业演讲稿
2014/05/05 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
党员自评材料范文
2014/12/17 职场文书
应聘教师求职信范文
2015/03/20 职场文书