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中获取网页状态码的两个方法
Nov 03 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
Flask框架各种常见装饰器示例
Jul 17 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
Jun 13 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python实现桌面托盘气泡提示
Jul 29 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python实现CAN报文转换工具教程
May 05 Python
python获取百度热榜链接的实例方法
Aug 25 Python
python 提高开发效率的5个小技巧
Oct 19 Python
基于Django快速集成Echarts代码示例
Dec 01 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无限极分类实现的两种解决方法
2013/04/28 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python字典DICT类型合并详解
2017/08/17 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
服务之星获奖感言
2014/01/21 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
职称评定自我鉴定
2014/03/18 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书