Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】


Posted in Python onOctober 11, 2019

本文实例讲述了Python 网络编程之UDP发送接收数据功能。分享给大家供大家参考,具体如下:

demo.py(UDP发送数据):

import socket # 导入socket模块
def main():
  # 创建一个udp套接字
  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  # 绑定本机ip和端口号 (发送数据时,如果不绑定,系统会随机分配端口号。接收数据时,一般需要手动绑定ip和端口)
  udp_socket.bind(("", 7890)) # 空字符串""表示本地ip
  # 从键盘获取数据
  send_data = input("请输入要发送的数据:")
  # 可以使用套接字接收和发送数据
  # udp_socket.sendto(b"hahahah", ("192.168.33.53", 7788)) # 字符串前的b表示bytes字节类型
  udp_socket.sendto(send_data.encode("utf-8"), ("192.168.33.53", 7788)) # encode将字符串转成bytes类型
  # 关闭套接字
  udp_socket.close()
if __name__ == "__main__":
  main()

demo.py(UDP接收数据):

import socket
def main():
  # 1. 创建套接字
  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  # 2. 绑定本机ip和端口
  udp_socket.bind(("", 7788)) # 绑定本机的ip和端口(元组类型) ""表示本机ip
  # 3. 用套接字接收数据
  recv_data = udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数。会阻塞代码,直到接收到数据
  # recv_data这个变量中存储的是一个元组 (接收到的数据,(发送方的ip, port))
  recv_msg = recv_data[0] # 字节类型 存储接收到的数据
  send_addr = recv_data[1] # 元组 存储发送方的地址和端口信息
  # 4. 打印接收到的数据
  # print(recv_data) # 元组 (接收到的数据,(发送方的ip, port))
  print("%s:%s" % (str(send_addr), recv_msg.decode("gbk"))) # decode将字节转成字符串
  # 5. 关闭套接字
  udp_socket.close()
if __name__ == "__main__":
  main()

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

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

Python 相关文章推荐
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
python实现发送和获取手机短信验证码
Jan 15 Python
python调用API实现智能回复机器人
Apr 10 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Python错误处理操作示例
Jul 18 Python
python实现简易动态时钟
Nov 19 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python实现简易学生信息管理系统
Apr 05 Python
pytorch构建多模型实例
Jan 15 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 #Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 #Python
Python中的延迟绑定原理详解
Oct 11 #Python
python pycharm的安装及其使用
Oct 11 #Python
详解Python3迁移接口变化采坑记
Oct 11 #Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 #Python
Pycharm 2019 破解激活方法图文详解
Oct 11 #Python
You might like
DIY实用性框形天线
2021/03/02 无线电
最省空间的计数器
2006/10/09 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
实例讲解PHP表单
2020/06/10 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
详解javascript void(0)
2020/07/13 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
使用Python神器对付12306变态验证码
2016/01/05 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python利用正则表达式提取字符串
2016/12/08 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python中反射和描述器总结
2018/09/23 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python tkinter和exe打包的方法
2020/02/05 Python
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
优秀小学生家长评语
2014/01/30 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
公司合并协议书范本
2014/09/30 职场文书
三峡人家导游词
2015/01/31 职场文书
报案材料怎么写
2015/05/25 职场文书
法定代表人免职证明
2015/06/24 职场文书
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis