Linux网络编程-udp

1.今天的内容包括:udp通信的编程方法、广播通信的方法

2.udp通信

udp和tcp通信方式

2.1socket创建

使用SOCK_DGRAM创建。

2.2发送和接收数据

使用sendto和recvfrom,因为没有建立连接所以每次都要有ip和port,就是使用struct sockaddr地址。

都是六个参数,分别是套接字、缓冲区、缓冲区大小、flag写0、地址、地址长度(sendto是sizeof、recvfrom是一个传出参数,是一个指针)。

2.3显示客户端ip和port的方法

把之前的第五个参数,ip使用inet_ntop来放在缓冲区,把ip地址,从二进制字节序变成字符串,然后port使用ntohs。

3.广播通信

这里和之前的相反是不需要给服务器绑定地址,这里服务器的目的是发送信息,然后需要给客户端绑定广播通信地址。

服务器的套接字使用setsockopt设置,第一个参数是套接字、第二个是SOL_SOCKET、第三个是SO_BROADCASE。

4.总结

udp通信比tcp总结,然后sendto和recvfrom有一点参数的差别,广播通信的特点就是客户端这次绑定地址。

相关推荐
哼?~5 分钟前
Linux线程基本概念
linux
虾..22 分钟前
TCP协议
网络·网络协议·tcp/ip
姓王名礼43 分钟前
一份 Windows/macOS/Linux 完整安装 + 运行 + 对接 WebUI 的步骤
linux·windows·macos
上去我就QWER1 小时前
详解HTTP协议中的multipart/form-data
网络·网络协议·http
idolao2 小时前
CentOS 7 安装 nginx-1.3.15.tar.gz 详细步骤(从源码编译到启动配置)
linux·运维·数据库
@encryption2 小时前
TCP,IP
服务器·网络·tcp/ip
yaoxin5211232 小时前
358. Java IO API - 使用 relativize() 创建路径之间的相对关系
java·linux·python
亚林瓜子2 小时前
linux账号强制密码过期导致私钥文件登录异常问题——(current) UNIX password:
linux·运维·服务器·ssh·aws·ec2·chage
Code_LT2 小时前
【AIGC】Claude Code Rules配置
linux·ubuntu·aigc
LXY_BUAA2 小时前
《嵌入式操作系统》_驱动框架_20260318
linux·运维·服务器