相关函数:send, sendmsg, recv, recvfrom, socket

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

定义函数: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 <sys/types.h>
#include <sys/socket.h>
#include <netinet.in.h>
#include <arpa.inet.h>
#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语言sendto()函数:经socket传送数据相关推荐

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

    头文件:#include   #include 定义函数:int sendto(int s, const void * msg, int len, unsigned int flags, const ...

  2. 网络编程 day03 (linux) UDP 协议的传输 与函数 getsockopt setsockopt sendto(经socket传送数据)recvfrom

    1.UDP协议的特点 UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议.在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输. 适用情况: 1.发 ...

  3. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数

    R语言merge函数全连接dataframe数据(Full (outer) join).merge函数进行全连接必须将参数all设置为true(all=TRUE).默认merge函数通过公共列名合并数 ...

  4. R语言merge函数左连接dataframe数据(Left (outer) join in R)、左连接必须将参数all设置(all.x = TRUE)、默认merge函数通过公共列名合并数据集

    R语言merge函数左连接dataframe数据(Left (outer) join in R).merge函数进行左连接必须将参数all设置为(all.x = TRUE).默认merge函数通过公共 ...

  5. R语言scale函数标准化缩放dataframe数据列实战

    R语言scale函数标准化缩放dataframe数据列实战 目录 R语言scale函数标准化缩放dataframe数据列实战 #仿真数据

  6. R语言names函数获取或者设置数据对象名称实战

    R语言names函数获取或者设置数据对象名称实战 目录 R语言names函数获取或者设置数据对象名称实战 #基本语法

  7. C语言sprintf函数解析(实现数据类型转换到字符串)

    最近在将int转为char*字符串上出了问题,最后使用sprintf函数解决, 使用实例: char *char_num; int recv_num=-123456:sprintf(char_num, ...

  8. c语言中getenv的作用,C语言putenv()函数和getenv()函数的使用详解

    C语言putenv()函数和getenv()函数的使用详解 C语言putenv()函数:改变或增加环境变量头文件: #include4 定义函数: int putenv(const char * st ...

  9. c语言 socket send,C语言中send()函数和sendto()函数的使用方法

    C语言send()函数:经socket传送数据头文件: #include #include 定义函数: int send(int s, const void * msg, int len, unsig ...

最新文章

  1. 解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法...
  2. 面向过程、面向函数、面向对象的区别浅谈
  3. [python] list元素按关键字相加减
  4. 演练:调试 Windows 窗体
  5. 理想汽车7月交付8589辆理想ONE 单月交付量首次超8000辆
  6. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest
  7. Java语言基础:IPO编程模式
  8. 笨方法学Python-1
  9. 计算机怎么快速查找应用,win10系统如何快速查找应用?win10系统快速查找应用的方法...
  10. 利用在线技术更改图片清晰度
  11. 在三角形中rt是什么意思_数学知识点RT三角形是什么意思
  12. pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
  13. DeviceManager--Device administration设备管理器
  14. 二维码制作之批量生成名片二维码
  15. 如何确定网站的关键词呢
  16. 苹果app退款_苹果 App Store 已购买的应用如何申请退款?
  17. USB 4(USB 4.0)的设计规范(原版)
  18. S12(X)微控制器的Bootloader程序
  19. 养生之道---六字气决
  20. 揭秘HTTP/3优先级

热门文章

  1. Ubuntu根目录下各文件夹的功能详细介绍
  2. 【渝粤教育】 国家开放大学2020年春季 2542行政组织学 参考试题
  3. [渝粤教育] 西南科技大学 西方经济学 在线考试复习资料
  4. 【渝粤题库】陕西师范大学201661英语阅读(二)作业(高起专)
  5. java里面自行车的属性_11、Java基础知识
  6. python集合用法_Python 集合(Set)
  7. 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)
  8. 在一个由小写英文字母(a-z)组成的字符串中,查找最长子串,其头尾字母相同,且中间不包含该头尾字母,并输出最左边的该类子串
  9. Java实现复数Complex的加减乘除运算、取模、求幅角角度
  10. Java语言学习概述