#粤嵌星计划#
(第九周第二次)
今天分享下UDP通信流程
发送方:
创建 UDP 套接字: int fd = socket();
准备好接收方的地址:struct sockaddr_in peerAddr;
给对方发送 UDP 数据报:sendto(fd, peerAddr);
接收方:
创建 UDP 套接字:int fd = socket();
准备好自己的地址:struct sockaddr_in addr;
绑定套接字和地址:bind(fd, addr);
坐等各方发来的 UDP 数据报:recvfrom(fd);
(第九周第二次)
今天分享下UDP通信流程
发送方:
创建 UDP 套接字: int fd = socket();
准备好接收方的地址:struct sockaddr_in peerAddr;
给对方发送 UDP 数据报:sendto(fd, peerAddr);
接收方:
创建 UDP 套接字:int fd = socket();
准备好自己的地址:struct sockaddr_in addr;
绑定套接字和地址:bind(fd, addr);
坐等各方发来的 UDP 数据报:recvfrom(fd);
#粤嵌星计划,粤嵌我来了#
第十八次打卡,今天分享dup函数及其参数
int dup(int oldfd); ==> 复制文件描述符
int dup2(int oldfd, int newfd);
oldfd==> 要复制的文件描述符
newfd==> 指定的新文件描述符
返回值 新的文件描述符 ==> 成功
-1 ==> 失败
请注意,文件描述符只是一个整数,这两个函数的关键点不在于复制这两个整数,
而是复制它们所对应的在内核中的一套资源,并让一个新的文件描述符去指代这套系统资源。
第十八次打卡,今天分享dup函数及其参数
int dup(int oldfd); ==> 复制文件描述符
int dup2(int oldfd, int newfd);
oldfd==> 要复制的文件描述符
newfd==> 指定的新文件描述符
返回值 新的文件描述符 ==> 成功
-1 ==> 失败
请注意,文件描述符只是一个整数,这两个函数的关键点不在于复制这两个整数,
而是复制它们所对应的在内核中的一套资源,并让一个新的文件描述符去指代这套系统资源。
#粤嵌星计划,粤嵌我来了#
第十七次打卡,今天分享ioctl函数及其参数
int ioctl(int d, int request, ...);
d ==> 要控制的文件描述符
request ==> 针对不同文件的各种控制命令字
变参 ==> 根据不同的命令字而不同
返回值 一般情况下是0,但有些特定的请求将返回非负整数==> 成功
-1 ==> 失败
关键点:
1、request 就是所谓的命令字。
2、底层驱动开发者可以自定义命令字。
3、对于某些常见的硬件设备的常见功能,系统提供了规范的命令字。
第十七次打卡,今天分享ioctl函数及其参数
int ioctl(int d, int request, ...);
d ==> 要控制的文件描述符
request ==> 针对不同文件的各种控制命令字
变参 ==> 根据不同的命令字而不同
返回值 一般情况下是0,但有些特定的请求将返回非负整数==> 成功
-1 ==> 失败
关键点:
1、request 就是所谓的命令字。
2、底层驱动开发者可以自定义命令字。
3、对于某些常见的硬件设备的常见功能,系统提供了规范的命令字。
✋热门推荐