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开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
Django app配置多个数据库代码实例
Dec 17 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python实现批量移动文件
Apr 05 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 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压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
初识Javascript小结
2015/07/16 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
pandas删除指定行详解
2019/04/04 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python实现猜数游戏
2020/03/27 Python
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
小学生感恩演讲稿
2014/04/25 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
公司门卫工作职责
2014/06/28 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
spring boot实现文件上传
2022/08/14 Java/Android
React更新渲染原理深入分析
2022/12/24 Javascript