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 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
python实现五子棋人机对战游戏
Mar 25 Python
python redis连接 有序集合去重的代码
Aug 04 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
python实现AdaBoost算法的示例
Oct 03 Python
实例讲解Python中sys.argv[]的用法
Jun 03 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP中ADODB类详解
2008/03/25 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
Js 中debug方式
2010/02/07 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python爬虫可以爬什么
2020/06/16 Python
python如何将图片转换素描画
2020/09/08 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
车间操作工岗位职责
2013/12/19 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python