ubuntu下使用python进行简单的UDP通信

news/2024/5/18 12:07:46 标签: ubuntu, python, udp

目录

  • 一、参考链接
  • 二、主要工作
    • 1.查看本机ip
    • 2.下载Ubuntu下网络调试助手 NetAssist
    • 3.编写一个python脚本测试UDP通信
    • 4.测试简单的UDP通信


一、参考链接

Ubuntu下网络调试助手 NetAssist
使用python实现UDP通信
python代码实现简单的udp通信


二、主要工作

1.查看本机ip

#下载一个工具
sudo apt install net-tools

#查看ip
ifconfig

在这里插入图片描述
查看得本机ip为192.168.1.7

2.下载Ubuntu下网络调试助手 NetAssist

下载地址:
链接:https://pan.baidu.com/s/1BroDliYRitu6OWoNWR0BTA
提取码:gpza
下载完了双击直接安装

pythonUDP_28">3.编写一个python脚本测试UDP通信

UDP_text1.py

python"># -*- coding:UTF-8 -*-
import socket

#  使用udp收发数据
def main():
    #  1.创建socket套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # AF_INET表示使用ipv4,默认不变,SOCK_DGRAM表示使用UDP通信协议
        
    #  2.绑定端口port
    local_addr = ("192.168.1.7", 7878)  # 指定端口号7878
    udp_socket.bind(local_addr)  # 绑定端口
        
    #  3.收发数据
    send_data = input("请输入您想要发送的数据:" )
    udp_socket.sendto(send_data.encode("utf-8"), ("192.168.1.5", 8080))  # 编码成全球统一数据格式,用元组表示接收方ip和port
    recv_data = udp_socket.recvfrom(1024)  # 定义单次最大接收字节数
        
    #  4.打印数据
    recv_msg = recv_data[0]  # 接收的元组形式的数据有两个元素,第一个为发送信息
    send_addr = recv_data[1]  # 元组第二个元素为发信息方的ip以及port
    print ("收到的信息为:", recv_msg.decode("gbk"))  # 默认从windows发出的数据解码要用”gbk”,保证中文不乱码
    print ("发送方地址为:", str(send_addr))  # 强转为字符串输出地址,保证不乱码

    #  5.关闭套接字
    udp_socket.close()

if __name__ == "__main__":
    main()

4.测试简单的UDP通信

使用python3 UDP_text1.py运行该脚本后如下图所示
在这里插入图片描述
用另一台电脑打开网络调试助手,按照python脚本里面的填写的ip和端口号设置本地ip、端口号和目标ip、端口号,然后点击连接网络
在这里插入图片描述
python脚本这边输入需要发送的数据,点击回车
在这里插入图片描述
在另一台电脑上的网络调试助手接收到了
在这里插入图片描述
在另一台电脑上的网络调试助手上发送数据
在这里插入图片描述
python脚本这边也接收到了
在这里插入图片描述


http://www.niftyadmin.cn/n/350886.html

相关文章

conda 笔记 conda命令收集

1 conda相关命令 conda info 判断conda是否正常安装检查conda版本号 conda update -n base conda 将conda更新到当前版本 conda update anaconda 将所有的package尽量更新到最新的版本加尽量的原因是,包裹之间可能会有冲突,所以需要优先保证packa…

docker 的yum安装

目录 一、配置docker官方的yum仓库 1)安装工具yum-utils 2)调用yum-utils工具的命令 yum-config-manager 添加 docker官方的社区版yum仓库 二、docker版本选择安装 1、查看docker发布的版本 2、yum 安装docker 3、启动服务,设置开机启…

第十二章 Productions最佳实践 - 命名约定

文章目录 第十二章 Productions最佳实践 - 命名约定命名约定业务服务路由进程路由规则集业务操作数据转换 自定义架构类别 第十二章 Productions最佳实践 - 命名约定 命名约定 本主题解释命名约定的重要性并提供示例。 通常,将逐步开发产品,一次开发一…

Vue3+i18n多语言动态国际化设置步骤

1、技术介绍 i18n:Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中 i18n的官网地址安装 | Vue I18n (kazupon.github.io) 2、插件安装 npm install vue-i18n9 --save需要注意的是vue3最好使用9.x以上的版本! 3、创建i…

基因序列变异信息VCF (Variant Call Format)

<~生~信~交~流~与~合~作~请~关~注~公~众~号生信探索> VCF是Variant Call Format的简称&#xff0c;是一种定义的专门用于存储基因序列突变信息的文本格式。在生物信息分析中会大量用到VCF格式。例如基因组中的单碱基突变,SNP&#xff0c; 插入/缺失INDEL, 拷贝数变异CNV&…

Ray-深度学习Ray系统大纲

Ray-深度学习Ray系统大纲 简介和背景 访问链接地址 分布式计算的挑战和需求 Ray的起源和目标 Ray在分布式计算领域的定位 Ray的基本概念和核心组件 访问链接地址 任务(Task)的概念和任务调度 对象存储(Object Store)和数据共享 Actor模型和Actor的执行 调度器(Scheduler)…

【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

文章目录 系列文章目录&#x1f479; 关于作者一、回顾二、容器进程的文件系统是什么样子的&#xff1f;rootfs一致性解决应用依赖关系解决复用性 三、OverlayFS 联合文件系统先决条件overlay2 驱动程序如何工作结构图探索含义-磁盘上的镜像层和容器层镜像层容器层 四、overlay…

【Linux内核】Linux系统关于多进程和多线程相关知识点

Linux系统关于多进程和多线程的问题&#xff0c;常见的有以下几个&#xff1a; 什么是进程和线程&#xff1f; 进程是操作系统资源分配的最小单位。它包括程序、数据和进程控制块&#xff08;PCB&#xff09;&#xff0c;是一个正在运行中的程序实例。每个进程都有自己的内存…