Socket的send函数在执行时报EAGAIN的错误
Socket的send函数在执行时报EAGAIN的错误]
内容提要:
当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EGGAIN的错误。该错误产生的原因是由于send
函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspace定义了应用在调用send之前能够在kernel中缓存的数据量。当应用程序在socket中设置了O_NDELAY或者O_NONBLOCK属性后,如果发送缓存被占满,send就会返回EAGAIN的错误。
为了消除该错误,有三种方法可以选择:
1.调大tcp_sendspace,使之大于send中的size参数
---no -p -o tcp_sendspace=65536
2.在调用send前,在setsockopt函数中为SNDBUF设置更大的值
3.使用write替代send,因为write没有设置O_NDELAY或者O_NONBLOCK
Socket的send函数在执行时报EAGAIN的错误相关推荐
- Socket中send()函数和rece()函数详解
1.send函数 int send (SOCKET s, const char FAR *buf. int len,int flags); 不论是客户还是服务器应用程序都是用send函数来向TCP连接 ...
- Socket中send()函数和recv()函数详解
目录 1.send函数 2.recv函数 关于socket的send和recv的超时设置 1.send函数 int send( SOCKET s, const char FAR *buf, int l ...
- java socket send_Socket send函数和recv函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数 ...
- socket编程---send函数recv函数详解
一.send函数 函数原型:int send( SOCKET s,char *buf,int len,int flags ); 功能:不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端 ...
- java socket recv_Socket send函数和recv函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据 ...
- Socket send函数和recv函数详解
1.send 函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP ...
- linux socket send函数和recv函数详解以及修改缓冲区大小
一.send/recv详解 1.send 函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程 ...
- socket c语言 AF_TIPC,socket编程 send() recv() sendto() recvfrom()
socket编程 send() recv() sendto() recvfrom() int socket( int af, int type, int protocol); af: 指定一个协议簇( ...
- linux非阻塞的socket EAGAIN的错误处理【转】
转自:http://blog.csdn.net/tianmohust/article/details/8691644 版权声明:本文为博主原创文章,未经博主允许不得转载. 在Linux中使用非阻塞的s ...
最新文章
- 如何将图片中的一个任意四边形区域的图像转化为矩形【附源码】
- 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3
- RocketMQ性能压测分析(转载)
- 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程
- html5基础知识点盒子
- Moodle插件开发笔记
- MySQL 8.0.16安装(win64)
- 两轮差速驱动机器人轮间距校准方法
- 3D打印技术最全解析:从设计到工艺
- SAI绘制神秘人教程
- 群联2251-07 海力士TLC-16K 颗粒 U盘重新量产记录
- 如何打开计算机控制面板,控制面板怎么打开 快速打开控制面板方法大全-电脑教程...
- 【长难句分析精讲】状语从句
- mysql高级查询之性能分析explain和日志查看
- TextView 加下划线 、 中划线
- 差旅安全,你了解多少?
- NO-SQL(非关系型)数据库性能横向比较
- UE4 C++ 动态读取图片
- AStar(A*)算法
- 【FPGA的基础快速入门15------DS18B20数字温度传感器】