Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
作者:houyanhua1 发布时间:2023-09-23 14:33:28
标签:Python,UDP,socket套接字
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/houyanhua1/article/details/84251410


猜你喜欢
- 目录1、父传值给子组件2、子传值给父组件3、子调用父组件中的方法4、父调用子组件中的方法1、父传值给子组件父组件:<template&
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。EOF 指示当前记录位置位于 Recordset 对象的最后一个记录
- 首先我们有一个数据是一个mn的numpy矩阵现在我们希望能够进行给他加上一列变成一个m(n+1)的矩阵import numpy as npa
- 首先 你要有个女朋友效果:需要安装几个包pip install wxpypip install wechat_senderpip insta
- 本文实例讲述了正则表达式验证IPV4地址功能。分享给大家供大家参考,具体如下:IPV4地址由4个组数字组成,每组数字之间以.分隔,每组数字的
- 前言最近接手一个老项目,典型的 Vue 组件化前端渲染,后续业务优化可能会朝 SSR 方向走,因此,就先做些技术储备。如果对 Vue SSR
- 本文实例讲述了JS实现倒序输出的几种常用方法。分享给大家供大家参考,具体如下:1.通过split和数组的逆序输出var num = 123;
- 主页上的鼠标是不是就只有箭头和小手两种模样呢?如果鼠标移到“帮助”等字样上时,形状就变成求助的问号;鼠标移到可能需要较长时间等待的超链接时,
- 对于Vue.js来说,如果你想要快速开始,那么只需要在你的html中引入一个<script>标签,加上CDN的地址即可。但是,这
- PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成。PyQt5本身拥有超过620个类和60
- 1.概述pyecharts 是百度开源的,适用于数据可视化的工具,配置灵活,展示图表相对美观,顺滑。2.安装python3环境下的安装:pi
- 在腾讯的微信公众平台开发者文档,网页授权获取用户基本信息这一节中写道”在微信公众号请求用户网页授权之前,开发者需要先到公众平台网站的我的服务
- 使用golang并发求和,作为对golang并发的一个练习.为了验证结果的正确性,要给出最传统的版本:func sum1(data []in
- php5.2新增的json功能是非常受欢迎的,但是经过测试发现, json_encode对中文的处理是有问题的, 1.不能处理GB编码,所有
- 一个封装好的链接Oracle数据库的工具类,可以方便的获取Connection对象关闭Statement、ResultSet、Statmen
- 本文实例讲述了PHP+redis实现添加处理投票的方法。分享给大家供大家参考,具体如下:<?php header("Cont
- 最近因为要安装Tensorflow,然后发现tensorflow居然不支持python3.7,于是怒而将其降级到3.6以下是具体命令,mar
- 一,前言今天做的东西,还算可以,修改了若干个bug,自己又写成功的写了几个bug。增加了一个功能——
- 本文实例讲述了Python实现扩展内置类型的方法。分享给大家供大家参考,具体如下:简介除了实现新的类型的对象方式外,有时我们也可以通过扩展P
- 前言前面两篇文章介绍了数据结构和算法的一些前置内容,这篇文章开始正式学习常见的数据结构,首先学习的就是栈(Stack)。什么是栈?栈全称为堆