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 用户登录验证的小例子
Mar 06 Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
对pandas中apply函数的用法详解
Apr 10 Python
python实现连续图文识别
Dec 18 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Python气泡提示与标签的实现
Apr 01 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
Python如何对齐字符串
Jul 30 Python
python绘图subplots函数使用模板的示例代码
Apr 30 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
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python获取糗百图片代码实例
2013/12/18 Python
Python Deque 模块使用详解
2014/07/04 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
python 2.7.14安装图文教程
2018/04/08 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
Python time库基本使用方法分析
2019/12/13 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
会计顶岗实习心得
2014/01/25 职场文书
小学美术教学反思
2014/02/01 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL