网络编程原理(UDP):函数

//这两个函数是专用于UDP通信的;面向数据报的;

一、recvfrom

接收数据:将系统缓冲区中的数据拷贝到应用层

#include <sys/types.h>        //头文件
#include <sys/socket.h>

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                        struct sockaddr *src_addr, socklen_t *addrlen);

参数:

1.sockfd:文件描述符

2.buf:被写入的缓冲区——通常是char buffer[]

3.len:缓冲区的大小

4.flags:控制接收行为的标志,通常设为0(阻塞式等待数据);以下是可用标志

        MSG_WAITALL:尝试接收到全部请求的数据,函数可能会阻塞,知道收到所偶数据

        MSG_PEEK:查看即将接收到的数据,但是不从套接字缓冲区中删除它;

5.sockaddr类型的指针,输出型参数该参数是用来接收从网络对端传来的结构体,以便后续给对端的主机发送消息;输入输出型参数

6.第五个参数实际的长度;传得是地址;输出型参数

二、sendto

发送数据:将应用层数据发送给系统的缓冲区

#include <sys/types.h>        //头文件
#include <sys/socket.h>

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen); 

参数:

跟recvfrm参数并无太大区别;只不过最后一个参数,是输入型参数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值