首页 > 其他分享 >0229-UDP 发送和接收

0229-UDP 发送和接收

时间:2024-08-14 14:19:19浏览次数:11  
标签:0229 UDP 127.0 0.1 发送 buffer length 4444

环境

  • Time 2022-11-25
  • WSL-Ubuntu 22.04
  • Rust 1.65.0

前言

说明

参考:https://doc.rust-lang.org/std/net/struct.UdpSocket.html

目标

之前通过接收整个 IP 和 UDP 报文来实现了通信,这里去除报文头的细节,直接通信。

main.rs

UDP 由标准库直接支持,可以直接使用。
将发送过来的信息进行反转,然后发送回去。

use std::net::UdpSocket;

fn main() -> std::io::Result<()> {
    let socket = UdpSocket::bind("127.0.0.1:4444")?;

    loop {
        let mut buffer = [0; 1500];
        let (size, src) = socket.recv_from(&mut buffer)?;

        let buffer = &mut buffer[..size];
        buffer.reverse();
        socket.send_to(buffer, src)?;
    }
}

发送请求

root@jiangbo12490:~# nc -u 127.0.0.1 4444
jiangbo

obgnaijzhangsan

nasgnahz

TCPDUMP 抓包

root@jiangbo12490:~# tcpdump -A -n -i lo port 4444
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes

21:48:11.282710 IP 127.0.0.1.50799 > 127.0.0.1.4444: UDP, length 8
E..$.*@[email protected].\...#jiangbo

21:48:11.282772 IP 127.0.0.1.4444 > 127.0.0.1.50799: UDP, length 8
E..$..@[email protected]..........\.o...#
obgnaij
21:48:15.867097 IP 127.0.0.1.50799 > 127.0.0.1.4444: UDP, length 9
E..%.+@[email protected].\...$zhangsan

21:48:15.867157 IP 127.0.0.1.4444 > 127.0.0.1.50799: UDP, length 9
E..%..@[email protected]..........\.o...$
nasgnahz

总结

使用 Rust 的标准库,实现 UDP 的通信。

附录

标签:0229,UDP,127.0,0.1,发送,buffer,length,4444
From: https://www.cnblogs.com/jiangbo4444/p/18358871

相关文章

  • 0230-TCP 发送和接收
    环境Time2022-11-25WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://doc.rust-lang.org/std/net/struct.TcpListener.html目标之前认识了TCP报文头,这里去除报文头的细节,直接通信。main.rsTCP由标准库直接支持,可以直接使用。连接上去后,服务器返回一个hello。us......
  • 0226-UDP 请求报文
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0tun-tap0.1.3前言说明参考:https://docs.rs/pnet/latest/pnet/index.htmlRFC792目标了解UDP协议的的字段。从这里开始,将进入第四层,传输层协议。UDP协议基于IP协议。配置TUNIP地址不要和主机的......
  • DHCP服务(服务名dhcpd,端口UDP /67和UDP/68)
    目录前言配置文件DHCP服务器的配置下载安装DHCP服务编辑配置文件重启服务客户端测试配置客户端网卡重启网卡前言DHCP动态主机配置协议是一种网络协议,提供了动态配置IP地址的功能,允许服务器自动为网络上的设备分配IP地址和其他网络配置参数。当设备连接到网络时,它......
  • 使用python 实现自动发送邮件功能,并上传到宝塔
    defsend_qq_mail(subject,content,receiver):sender="你的邮箱"smtpserver="smtp.qq.com"#使用的是qq邮箱port=465#端口号user='你的邮箱'password='授权码'#请确保这是正确的密码或授权码《具体去查询qq邮箱授权码》msg=MI......
  • 短信接口-短信API-短信发送
    接口简介:短信验证码api,营销短信群发功能,群发短信可自动过滤无效号码后再发送。节约运营成本,每超过70个字符按一条短信计费。通过后台添加签名,再添加模版接口地址:https://www.wapi.cn/api_detail/86/204.html批量功能:https://www.wapi.cn/batch/detail_86.html网站地址:htt......
  • Proxifier 是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将
    Proxifier是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将所有网络流量或特定应用程序的流量通过代理服务器发送,从而增强隐私、绕过地理限制或访问受限内容。为什么使用Proxifier?隐私保护:通过代理服务器隐藏真实IP地址,增强在线隐私。绕过限制:访......
  • nodejs+阿里云实现发送短信验证码
    一、阿里云短信服务打开阿里云短信服务控制台1.新增资质2.新增模板与签名3.等待审核通过二、node代码1.首先需要下载依赖npmi@alicloud/pop-core--save2.引入依赖关键信息建议放环境变量中 accessKeyId和accessKeySecret在这里↓ 以下是代码constC......
  • 0220-发送 ARP 回应
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0tun-tap0.1.3前言说明参考:https://docs.rs/pnet_packet/latest/pnet_packet/index.html参考:https://www.kernel.org/doc/html/latest/networking/tuntap.html目标使用TAP后,接收到ARP操作系统不再自动......
  • UDP网络套接字
    一、Socket编程预备1.1理解通行的本质    在网络通信中将数据传输到主机是目的吗?其实并不是,在现实生活中,我们通过网络聊天是人与人在聊天,下载软件是人在下载,浏览网页是人在浏览,而我们聊天用的微信、下载用的应用商店、浏览用的浏览器在主机中是不同的进程,所以人在主......
  • UDP/TCP网络调试助手 NetAssist【调试工具】下载
    链接:https://pan.baidu.com/s/1QgL4XZdKNW39nFe18feBbw?pwd=1122提取码:1122–来自百度网盘超级会员V3的分享接收设置ASCII:以ASCII格式显示接收到的数据。ASCII是一种字符编码标准,用于表示文本数据。HEX:以十六进制格式显示接收到的数据。十六进制显示更适合查看和调试......