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在多玩图片上下载妹子图的实现代码
Aug 13 Python
Python获取脚本所在目录的正确方法
Apr 15 Python
python实现识别相似图片小结
Feb 22 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
怎样使用Python脚本日志功能
Aug 14 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
python飞机大战游戏实例讲解
Dec 04 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下使用SMTP发邮件的代码
2008/01/10 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php实现复制移动文件的方法
2015/07/29 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
学习JavaScript正则表达式
2015/11/13 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
python 正则式使用心得
2009/05/07 Python
python与C互相调用的方法详解
2017/07/14 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
毕业生自荐书
2013/12/18 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
体育专业自荐书
2014/05/29 职场文书
名人演讲稿范文
2014/09/16 职场文书
团支部书记竞选稿
2015/11/21 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Django中session进行权限管理的使用
2021/07/09 Python
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers