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多线程编程(四):使用Lock互斥锁
Apr 05 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
Python中一些不为人知的基础技巧总结
May 19 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
如何通过python画loss曲线的方法
Jun 26 Python
利用python画出AUC曲线的实例
Feb 28 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Python虚拟环境venv用法详解
May 25 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和ACCESS写聊天室(七)
2006/10/09 PHP
php GeoIP的使用教程
2011/03/09 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
幼师自荐信
2013/10/26 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
委托证明书
2014/09/17 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
培训简讯范文
2015/07/20 职场文书
同事离别感言
2015/08/04 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python