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 socket编程实例详解
May 27 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python编程之string相关操作实例详解
Jul 22 Python
python人民币小写转大写辅助工具
Jun 20 Python
总结python中pass的作用
Feb 27 Python
用Python从0开始实现一个中文拼音输入法的思路详解
Jul 20 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python数据持久化存储实现方法分析
Dec 21 Python
python实现井字棋小游戏
Mar 04 Python
python操作yaml说明
Apr 08 Python
Python如何定义接口和抽象类
Jul 28 Python
python进度条显示-tqmd模块的实现示例
Aug 23 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中随机显示图片的函数代码
2011/06/23 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python备份Mysql脚本
2008/08/11 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Python shutil模块用法实例分析
2019/10/02 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
python怎么对数字进行过滤
2020/07/05 Python
Python 实现一个简单的web服务器
2021/01/03 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
大学生标准推荐信范文
2013/11/25 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
汽车销售合同文本
2019/08/08 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python