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模块详解
Sep 15 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
Python遍历numpy数组的实例
Apr 04 Python
python实现简单多人聊天室
Dec 11 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
Python request post上传文件常见要点
Nov 20 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
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
php绘制一条弧线的方法
2015/01/24 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
python实现对excel进行数据剔除操作实例
2017/12/07 Python
python实现爬取图书封面
2018/07/05 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
大学生党课思想汇报
2013/12/29 职场文书
活动倡议书范文
2014/05/13 职场文书
公司节能减排方案
2014/05/16 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android