C语言send()函数:经socket传送数据头文件:

#include #include

定义函数:

int send(int s, const void * msg, int len, unsigned int falgs);

函数说明:send()用来将数据由指定的socket 传给对方主机. 参数s 为已建立好连接的socket. 参数msg 指向欲连线的数据内容, 参数len 则为数据长度. 参数flags 一般设0, 其他数值定义如下:

MSG_OOB 传送的数据以out-of-band 送出.

MSG_DONTROUTE 取消路由表查询

MSG_DONTWAIT 设置为不可阻断运作

MSG_NOSIGNAL 此动作不愿被SIGPIPE 信号中断.

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

错误代码:

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

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

ENOTSOCK 参数s 为一文件描述词, 非socket.

EINTR 被信号所中断.

EAGAIN 此操作会令进程阻断, 但参数s 的socket 为不可阻断.

ENOBUFS 系统的缓冲内存不足

ENOMEM 核心内存不足

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

C语言sendto()函数:经socket传送数据头文件:

#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);

}

}

c语言 socket send,C语言中send()函数和sendto()函数的使用方法相关推荐

  1. c语言中1B是多少,C语言1、C语言中,运算对象必须是整型的运算符是【】A./B-查字典问答网...

    C语言1.C语言中,运算对象必须是整型的运算符是[]A./B.%C.++D. 2.下列标识符中,不合法的是[] A.x2B.sizeofC._123D.char2 5.设d是double型变量,若要从 ...

  2. c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型

    实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...

  3. C语言中的rename()和remove()函数的使用及注意点

    C语言中的rename()和remove()函数的使用及注意点 C语言中rename() 和remove()函数属于文件处理函数,其中rename() 对文件或目录进行移动和删除. int ret = ...

  4. C语言中的malloc与free函数

    C语言中的malloc与free函数 malloc函数的作用是在堆中开辟一块指定大小的空间.如果开辟成功,返回空间首个字节地址,失败则返回NULL. free函数能够释放在堆中开辟的内存空间,传入一个 ...

  5. c语言 recv_sin,C++_C语言中经socket接收数据的相关函数详解,recv()函数: 头文件:#incl - phpStudy...

    C语言中经socket接收数据的相关函数详解 recv()函数:头文件: #include #include 定义函数: int recv(int s, void *buf, int len, uns ...

  6. c语言 地址+1,C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?...

    在C语言中,我们常常用到的一个运算是让某个变量的值+1. 例如 M = M + 1. 而在实际运用中,我们发现 对于指针进行+1运算,算出来的结果是+4. 如下图 图中我们定义的 变量M 和指针Mat ...

  7. C语言程序设计double,C语言中double类型数据占字节数为

    1以下选项中,能用作数据常量的是________. A.o115 B.0118 C.115L D.1.5e1.5 2下列叙述中错误的是_______. A.一个C语言程序只能实现一种算法 B.一个C函 ...

  8. c语言教程 define,C语言中define的用法

    预处理命令以"#"号开头,如包含命令#include,宏定义命令#define等.一般都放在源文件的前面,它们称为预处理部分. 所谓预处理是指在进行编译之前所作的工作.预处理是C语 ...

  9. c语言void结尾,C语言中void*详解及应用

    void在英文中作为名词的解释为"空虚:空间:空隙":而在C语言中,void被翻译为"无类型",相应的void *为"无类型指针".void ...

最新文章

  1. 德州农工大学 计算机排名,德州农工大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...
  2. php curl 测试,php使用curl检测网页是否被百度收录的示例
  3. 在内存中读取函数的ShellCode并执行
  4. ST函数(ST表)RMQ O(1)查询 离线
  5. Hi3559AV100开发环境搭建
  6. python面向对象:小结
  7. 独角兽影视APP系统源码/双端影视APP源码
  8. android缅甸语,关于unicode:Android中的缅甸语言
  9. 联通企业专线_上海联通数据专线-企业宽带网
  10. C语言_4 循环结构;一些例题
  11. slideUp()方法和slideDown()方法
  12. 程序设计学习(c++)(课堂学习2)
  13. 京东抢购工具 监控工具 秒杀工具
  14. 杰里之AD697N/AC897N 加强 ESD 静电防护措施说明【篇2】
  15. 蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)
  16. 穷人家的孩子真的没戏了吗?道翰天琼认知智能机器人api接口平台为您解密-1!
  17. 2015春季实习生招聘 多益网络科技有限公司笔试+面试 游戏开发工程师
  18. Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试
  19. Scrapy-redis 分布式爬虫-成都安居客二手房数据爬取
  20. laravel中的composer镜像地址

热门文章

  1. ZFS-128bit文件系统
  2. rabbitmq消费端auto和manual区别;处理mq的requeue
  3. 《烈火军校》主题曲插曲
  4. 2022年全球市场混合筒仓总体规模、主要生产商、主要地区、产品和应用细分研究报告
  5. php rsa加密实例,php实现RSA加密类实例,phprsa加密实例_PHP教程
  6. 雷军 | 我十年的程序员生涯
  7. Linux操作系统同时启动多个服务脚本
  8. 大学生急救新思维与户外模拟训练知识总结 2018年秋
  9. ACM入门及STL简介(转)
  10. Echarts可视化 之custom自定义系列