社区
Linux/Unix社区
帖子详情
linux socket recv函数返回EINTR
奋斗的蜗牛2013
2011-06-21 05:25:05
linux下非阻塞socket,使用recv函数,当返回EINTR时就重复读取,
while(1)
{
ret = recv....
if (ret < 0 && errno == EINTR)
{
continue;
}
}
为什么总是返回EINTR呢?导致死循环!!
...全文
584
6
打赏
收藏
linux socket recv函数返回EINTR
linux下非阻塞socket,使用recv函数,当返回EINTR时就重复读取, while(1) { ret = recv.... if (ret < 0 && errno == EINTR) { continue; } } 为什么总是返回EINTR呢?导致死循环!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
奋斗的蜗牛2013
2011-06-22
打赏
举报
回复
对,我也是这么认为的。应该很少被中断才行。
justkk
2011-06-22
打赏
举报
回复
对于非阻塞的socket,按理说被信号中断的几率不大啊
倒是应该返回EWOULDBLOCK
奋斗的蜗牛2013
2011-06-22
打赏
举报
回复
我知道是被中断了,但是不能每次调用都被中断啊。
快乐田伯光
2011-06-21
打赏
举报
回复
因为你是非阻塞啊,你需要的是阻塞读,然后EINTR了就说明这个阻塞式调用被信号中断了
奋斗的蜗牛2013
2011-06-21
打赏
举报
回复
是啊,但是不能一直错误啊。
justkk
2011-06-21
打赏
举报
回复
EINTR 表示被什么信号中断了吧
linux
C语言
socket
函数
recv
recv
函数
是在
Linux
C 语言网络编程中用于从已连接的套接字接收数据的
函数
。它通常与 TCP 连接一起使用,但也可以用于 UDP(尽管对于 UDP,更常使用
recv
from,因为它还可以接收发送方的地址信息)。
Linux
网络编程之
recv
函数
返回
值为-1,并且 (errno == E
INT
R || errno == EWOULDBLOCK || errno == EAGAIN) 的情况下认为连接是正常的,继续接收。
recv
函数
返回
值说明
recv
函数
int
recv
(
SOCKET
s, char FAR *buf,
int
len,
int
flags); 不论是客户还是服务器应用程序都用
recv
函数
从TCP连接的另一端接收数据。该
函数
的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲...
【
Socket
网络编程】17.
recv
()
函数
详解
recv
函数
int
recv
(
SOCKET
s, char *buf,
int
len,
int
flags); 参数说明 第一个参数指定接收端套接字描述符;...同步
Socket
的
recv
函数
的执行流程 当应用程序调用
recv
函数
时:
recv
先等待 SOCKE...
深入理解
socket
中的
recv
函数
和send
函数
**·**
recv
函数
用于
socket
通信中接收消息,接口定义如下: ssize_t
recv
(
int
socket
, void *buf, size_t len,
int
flags) 参数一:指定接收端套接字描述符; 参数二:指向一个缓冲区,该缓冲区用来存放
recv
函数
接收...
Linux/Unix社区
23,124
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章