函数原型:

int recvfrom(socket s,void *buf,int len,unsigned int flags, struct sockaddr *from,int *fromlen);

函数说明:接收一个数据报并保存源地址。

参数说明:

s:标识一个已连接套接口的描述字。

buf:接收数据缓冲区。

len:缓冲区长度。

flags:调用操作方式,一般设置为0。

from:(可选)指针,用来指定欲接收数据的网络地址。

fromlen:(可选)指针,指向from长度值。

返回值:成功则返回接收到的字符数,失败返回-1。

注意事项:与recv()函数的比较,UDP使用recvfrom()函数接收数据,他类似于标准的read(),但是在recvfrom()函数中要指明接收数据的源地址。对于recvfrom,可同时应用于面向连接的和无连接的套接字。recv一般只用在面向连接的套接字,几乎等同于recvfrom,只要将recvfrom的第五个参数设置NULL。不管是recv还是recvfrom,都有两种模式,阻塞和非阻塞,可以通过ioctl函数来设置。阻塞模式是一直等待直到有数据到达,非阻塞模式是立即返回,需要通过消息,异步事件等来查询完成状态。

88-网络编程接收函数(recvfrom)相关推荐

  1. tcp/ip网络编程--accept()函数返回的套接字

    tcp/ip网络编程–accept()函数返回的套接字 套接字:1)套接字是对网络中不同主机的应用进程之间进行双向通信的端点的抽象:一个套接字就是网络进程通信的一端.[1] 2)套接字是用来与另一个进 ...

  2. c/c++ 网络编程 getaddrinfo 函数

    网络编程 getaddrinfo 函数 解析网址,返回IP地址. 例子: #include <iostream> #include <string.h> #include &l ...

  3. UNIX网络编程-listen函数及其包裹函数介绍

    UNIX网络编程-listen函数及其包裹函数介绍 函数简介 #include<sys/socket.h>int listen(int sockfd,int backlog);返回:若成功 ...

  4. C++网络编程Select函数用法

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...

  5. UNIX网络编程——fcntl函数

    fcntl函数提供了与网络编程相关的如下特性: 非阻塞式I/O.  通过使用F_SETFL命令设置O_NONBLOCK文件状态标志,我们可以把一个套接字设置为非阻塞型. 信号驱动式I/O. 通过使用F ...

  6. 网络编程 -- gethostbyname() 函数解析

          最近一段时间在看网络编程的东西,其中的一些函数很是好用,故留下笔记在这.       首先,在了解这个函数之前,我们需要知道一个结构 -- struct hostent struct ho ...

  7. linux网络编程常用函数详解与实例(socket--bind--listen--accept)

    常用的网络命令: netstat 命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可 ...

  8. 【java奇思妙想】使用多线程的思想来实现java网络编程接收和发送的问题

    在学习网络编程的时候,实现了简单的聊天室功能,但是,此聊天室只能以如下流程实现: 客户端发送消息 -> 服务器端接收消息 -> 服务器端发送消息 -> 接收端接收消息 代码如下 1. ...

  9. 健壮的网络编程IO函数-RIO包

    RIO包 简介 Rio包即为Robust io函数包.包中函数是对Linux基本I/O函数的封装,使其更加健壮.高效,更适用于网络编程. 分析 Rio包由rio_t结构体和系列函数组成. 首先是两个不 ...

最新文章

  1. X-Deep Learning功能模块
  2. 最快最简单的排序(之二)——桶排序(简化版)
  3. vb编程的好帮手--资源文件
  4. C++ : 构造函数,拷贝构造函数,移动构造函数,拷贝赋值运算符,移动赋值运算符应用场景
  5. TabActivity 切换到后台遇到的问题
  6. 双11成交多少和我无关,但这个魔性MV真的让我笑喷!
  7. 2021年4月Oracle数据库补丁分析报告
  8. WORD如何比较原文档和别人修改过的文档?
  9. RabbitMQ文档翻译——Hello World!(下)
  10. VMware16安装Redhat7 图文教程
  11. iOS手势的传递问题
  12. php 怎么判断是微信浏览器,php 判断是否为手机浏览器和微信浏览器
  13. PHP幸运抽奖系统带后台源码
  14. 研究War3编辑器(2):地图编辑器基本操作
  15. Python re模块,正则表达式
  16. 前端js 面试题 forEach 和 map 有什么区别?
  17. uniapp 开发微信公众号H5 隐藏右上角扩展按钮
  18. mysql连接查询、自查询
  19. OLTP vs OLAP 区别和联系
  20. 基于主成分分析法的安全评价模型

热门文章

  1. 单片机蓝桥杯准备:温度模块
  2. 不小心还原了虚拟机快照的解决方法
  3. 官宣:Apache Doris 顺利毕业,成为 ASF 顶级项目!
  4. 中国平安旗下智慧教育平台:“一人一类,千人千面”的个性化教学安排 |百万人学AI评选
  5. sugarcrm php版本,安装SugarCRM 6.5版本
  6. 不错的shell 脚本教程
  7. 指派问题与匈牙利法讲解
  8. Linux命令之老鸟篇
  9. Maven中通过依赖坐标导入jar包
  10. 计算机职称考试internet书籍,全国职称计算机考试专用教程:Internet(附光盘)...