首页 > 其他分享 >read() 和revc()

read() 和revc()

时间:2024-05-15 20:00:04浏览次数:16  
标签:函数 read buf revc 接字 接收数据 recv

`read()` 和 `recv()` 函数都是用于从套接字(socket)中接收数据的函数,但它们在不同的情况下使用略有不同,主要区别在于:

1. **函数签名和参数**:
- `read()` 函数是 POSIX 标准定义的,它的函数签名通常是 `ssize_t read(int fd, void *buf, size_t count)`,其中 `fd` 是文件描述符,`buf` 是用来接收数据的缓冲区,`count` 是要读取的数据长度。
- `recv()` 函数是套接字函数,它的函数签名通常是 `ssize_t recv(int sockfd, void *buf, size_t len, int flags)`,其中 `sockfd` 是套接字描述符,`buf` 是用来接收数据的缓冲区,`len` 是要读取的数据长度,`flags` 是一些可选的标志参数。

2. **适用范围**:
- `read()` 函数可以用于读取任何类型的文件描述符,包括普通文件、管道、标准输入输出等,而且不仅限于网络套接字。
- `recv()` 函数通常用于从网络套接字中接收数据,它包含了一些额外的参数用于控制接收行为,例如设置接收数据的标志、超时等。

3. **可移植性**:
- `read()` 是 POSIX 标准定义的函数,因此在 UNIX/Linux 等系统中都可以使用。
- `recv()` 是 BSD 套接字函数,因此在 UNIX/Linux 等系统中也可以使用,但是在一些特定的操作系统或编译器下可能会有不同的行为。

总的来说,`read()` 是通用的文件读取函数,而 `recv()` 是专门用于从套接字接收数据的函数,根据具体的使用场景和需求来选择合适的函数。

标签:函数,read,buf,revc,接字,接收数据,recv
From: https://www.cnblogs.com/whcjob/p/18194587

相关文章

  • [Paper Reading] PETR: Position Embedding Transformation for Multi-View 3D Object
    PETR:PositionEmbeddingTransformationforMulti-View3DObjectDetectionPETR:PositionEmbeddingTransformationforMulti-View3DObjectDetection时间:22.07机构:MegviiTL;DR一种多目3D目标检测的方法,主体思想是将3D坐标信息编码到2D图像特征,产生3Dawaredfeatur......
  • RetryableException: Read timed out executing导致服务假死无响应
    最近发现Plan这个微服务经常会无响应,后来发现是task微服务会调用plan的某个接口,经常报错如下异常,然后timeout后又30秒再次发起重试而这个业务处理时间1分钟-2小时都有可能所以把plan微服务线程池占满导致无响应2024-05-1314:27:00.282N/A,b1f2a3468b14468abef240bfeddd8b95,0......
  • Structures Or Why Don't Things Fall Down (Reading)
    1BentmasonrycolumninSalisburyCathendral2Stressconcentrationatcracktip3'Aneurism'incylindricalballoon4Sectionofarterywalltissue5CorbelledvaultatTiryns6Simi-corbelledposterngateatTiryns7Clarebridge,Cambride(c......
  • Oracle RAC备库启动service报"ORA-16000: database open for read-only access"
     OracleRAC备库启动service报"ORA-16000:databaseopenforread-onlyaccess" 还是2019.03.01那天的事了,当时在KFT客户就遇到这个问题,最近在规整一些资料看到当时待整理的文档,就抽空做做实验整理下。报错信息如下,ADG备库:[oracle@xxxprdoradb01~]$srvctlstartservic......
  • Python 内置库 多线程threading使用讲解
    线程基本使用单线程defmain():print("在扔一个苹果")if__name__=="__main__":main()多线程Python提供了thread、threading等模块来进行线程的创建与管理,后者在线程管理能力上更进一步,因此我们通常使用threading模块。创建一个线程需要指定该线程执行的任务(函......
  • [Paper Reading]
    BEVDet:High-PerformanceMulti-Camera3DObjectDetectioninBird-Eye-ViewBEVDet时间:21/12机构:PhiGo(鉴智机器人)TL;DR一种BEV空间做detection的方法,构建了新颖的数据增强方法以及更新了nms策略,精度与FCOS3Dcomparable,计算量Flops仅为其11%。Method模型架构图整体来......
  • 记一次ThreadLocal中的用户信息混乱问题
    前言记录一次开发中遇到的关于ThreadLocal问题,场景是数据库表中的操作人总是无缘无故的被更改,排查了几遍代码才发现是ThreadLocal没有及时清理导致的。一、为什么使用ThreadLocal1.ThreadLocal的好处一般的项目设计开发中,用户登录后,我们会将用户的信息存到Session,如......
  • SystemVerilog -- 3.2 SystemVerilog Threads --> fork join_any
    forkjoin_any在一个简单的SystemVerilog中,mainthread会等到所有childthread都完成执行。这意味着如果任何childthread永远运行并且永远不会完成,则fork将挂起模拟。SystemVerilog还提供了带有forkjoin和forkjoin_any的原始版和变体。如果任何一个childthread完成,则允许ma......
  • SystemVerilog -- 3.1 SystemVerilog Threads --> fork join
    forkjoinSystemVerilog通过构造提供对并行或并发threads的支持。可以使用fork和join同时生成多个proceduralblocks。有一些变体允许mainthread根据childthread何时完成继续执行其余语句。Syntaxfork//Thread1//Thread2//...//Thread3joinforkjoin......
  • read读取
    read是一个Bash内置命令,用于从标准输入读取一行,并将其存储到一个或多个变量中。下面是read命令的基本语法:read[-options][variable...]read命令可以与不同的选项和参数一起使用,以满足不同的需求。下面是一些常用的选项和参数:-r:防止反斜杠字符\被解释为转义字符。-......