c语言中recvfrom函数,C语言sendto()函数-经socket传送数据以及recvfrom函数《转》
头文件:#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];
//建立socket
if(sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror ("socket");
exit(1);
}
//填写sockaddr_in 结构
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr = hton1(INADDR_ANY);
if(bind(sockfd, &addr, sizeof(addr)) < 0)
{
perror("connect");
exit(1);
}
while(1)
{
bezro(buffer, sizeof(buffer));
len = recvfrom(socket, buffer, sizeof(buffer), 0, &addr &addr_len);
//显示client 端的网络地址
printf("receive from %s\n ", inet_ntoa(addr.sin_addr));
//将字串返回给client 端
sendto(sockfd, buffer, len, 0, &addr, addr_len);
}
}
执行:请参考recvfrom()
c语言中recvfrom函数,C语言sendto()函数-经socket传送数据以及recvfrom函数《转》相关推荐
- 网络编程 day03 (linux) UDP 协议的传输 与函数 getsockopt setsockopt sendto(经socket传送数据)recvfrom
1.UDP协议的特点 UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议.在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输. 适用情况: 1.发 ...
- 255字符c语言中,在单片机C语言程序设计中,______类型数据经常用于处理ASCⅡ字符或处理小于等于255的整型数 答案:char...
夫通性转导,各说过者也:噬菌体转导供体菌染色体时位之义 随机抽样又名()耳:概率抽样 六十岁男,病患高血压年,忽见心慌.闷.膺而迫性疼痛,诊为暴心痛,应用何药宜也:硝酸甘油舌下含化 如寄生义类计算机疢 ...
- c语言中inline用法,C语言陷阱与技巧第2节,使用inline函数可以提升程序效率,但是让inline函数生效是有条件的...
打开 Linux 内核源代码,会发现内核在定义C语言函数时,有很多都带有 "inline"关键字,请看下图,那么这个关键字有什么作用呢? inline 关键字的作用 在C语言程序开 ...
- c语言中void arrout,c语言学习笔记(数组、函数
<c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...
- c语言中void指针,C 语言 void指针
C 语言 void指针 到目前为止,我们已经研究了分配给指针的地址应该与指针声明中指定的类型相同. 例如,如果我们声明了int指针,则此int指针不能指向float变量或某种其他类型的变量,即它只能指 ...
- html语言中%3c%%%3e中语言,[工学]C语言程序设计习题解答.doc
[工学]C语言程序设计习题解答 C程序设计习题 第一章 C 语言基础知识 1.1 选择题 1. C语言源程序的基本单位是_____. A. 过程 B. 函数 C. 子程序 D. 标识符 2. 下列各组 ...
- c语言中.和-区别,c语言中-和.的区别
对于c语言中"->"和"."的区别总结如下: 1.A.B则A为对象或者结构体: 2.A->B则A为指针,->是成员提取,A->B是提取A ...
- c语言中-1%3=,c语言数据类型.ppt
c语言数据类型 C语言程序设计 贵州大学电气工程学院 测控技术与仪器教研室 王民慧 本章主要内容: 3.1 C的数据类型 基本类型 构造类型 指针类型 空类型 C语言中的数据类型如下所示: 一.常量与 ...
- C语言sendto()函数:经socket传送数据
相关函数:send, sendmsg, recv, recvfrom, socket 头文件:#include <sys/types.h> #include <sys/socke ...
最新文章
- 不要相信修改注册表EnablePrefetcher文件达到加速开机速度的说法
- 在Qt(C++)中使用QThread实现多线程
- 如何制作快速加载的HTML页面
- IOS定位核心与地图
- [论文泛读]Web服务组合综述相关论文1(3篇)
- 实数系的基本定理_初中篇1|知实数-为什么0.9的循环等于1?
- SpringCloud工作笔记072---同一浏览器上不同标签页_tab页或者同一浏览器新开一个浏览器窗口也能实现单点登录_单点登录_localStorage_sessionStorage
- 电子科技大学要多少分才能录取?
- R语言中不能安装包(Package)的四种解决办法
- HA集群--corosync+pacemaker
- Java短信平台实战第二天
- 主播入门到精通培训实操手册全套资料(共300份)
- TensorFlow 2 实现线性回归和非线性回归
- 两年数据对比柱形图_对比数据还在用千篇一律的柱形图?试试wifi对比图,让人过目不忘...
- matlab表示大于等于,matlab不等于怎么表示
- 使用Python(OCR)收集体温打卡截图,并自动发消息提醒没交的人。
- AutoIt教程资源及autoit学习方法
- 西门子1500PLC机器人焊接程序(西门子PLC+西门子触摸屏)
- ngrok服务器搭建流程
- 图解十大经典机器学习算法入门