c语言中recvfrom函数,C语言sendto()函数-经socket传送数据以及recvfrom函数《转》

本文介绍了C语言中用于UDP数据传输的sendto()和recvfrom()函数,包括函数参数及作用。示例代码展示了一个简单的UDP服务器,用于接收并回显客户端发送的数据。
摘要由CSDN通过智能技术生成

头文件:#include   #include

定义函数:int sendto(int s, const void * msg, int len, unsigned int flags, const struct sockaddr * to, int tolen);

函数说明:sendto() 用来将数据由指定的socket 传给对方主机. 参数s 为已建好连线的socket, 如果利用UDP协议则不需经过连线操作. 参数msg 指向欲连线的数据内容, 参数flags 一般设0, 详细描述请参考send(). 参数to 用来指定欲传送的网络地址, 结构sockaddr 请参考bind(). 参数tolen 为sockaddr 的结果长度.

返回值:成功则返回实际传送出去的字符数, 失败返回-1, 错误原因存于errno 中.

错误代码:

1、EBADF 参数s 非法的socket 处理代码.

2、EFAULT 参数中有一指针指向无法存取的内存空间.

3、WNOTSOCK canshu s 为一文件描述词, 非socket.

4、EINTR 被信号所中断.

5、EAGAIN 此动作会令进程阻断, 但参数s 的soket 为补课阻断的.

6、ENOBUFS 系统的缓冲内存不足.

7、EINVAL 传给系统调用的参数不正确.

范例

#include

#include

#include

#include

#define PORT 2345 /*使用的port */

main()

{

int sockfd, len;

struct sockaddr_in addr;

char buffer[256];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值