最近在查找网络运行程序中发送命令和接收到命令期间的时间延迟很大问题,想想在确保网络环境良好的前提下可能与程序中的一些逻辑,或者一些发送接收相关的阻塞有关,所以认识了下recv()与send()函数,以便后续更好地找问题。
这次总结主要借鉴以下的这篇博客深入解析说明,感谢:
http://blog.chinaunix.net/uid-23208702-id-131258.html
同时更加详细的说明也可以查阅该篇博客:
http://www.360doc.com/content/13/1228/11/9305922_340725784.shtml
首先先总结下send函数的相关内容。
send函数
函数功能
send函数可以用于服务器向客户端发送数据,同样也可以使客户端向服务器发送数据。
原型
int send( SOCKET s_fd, const char* sendBuf, int len, int flags );
参数说明
1、s_fd: 指的是发送端的套接字描述符。即当服务器发送时,指accept到的描述符;当客户端发送时指connect到的描述符;
2、sendBuf: 指容纳发送内容的缓冲区,需要知道的是该部分缓冲区是指我们上层程序编写中自己定义的缓冲区;
3、len: 表示sendBuf缓冲区中内容的长度,即要发送内容的字节数;
4、f

本文介绍了在网络编程中,recv()和send()函数的用途、原型、参数和执行流程,以及它们在处理数据发送和接收时的阻塞行为。send()函数将数据拷贝到发送缓冲区并可能返回立即,而实际发送由协议处理。recv()函数则等待数据到达并拷贝到接收缓冲区。返回值和错误处理也是讨论的重点。
最低0.47元/天 解锁文章
85

被折叠的 条评论
为什么被折叠?



