当前位置: 技术问答>linux和unix
(请高手救命啊!在线等)Socket Send的时候,不停的得到EINTR错误返回, 请问是为什么?
来源: 互联网 发布时间:2015-04-08
本文导语: 在Redhat7.3下,多线程多CPU,在非常高频率Socket端口Send操作的时候,大概是1000次/秒以上, 持续出现EINTR错误。 有高手知道原因,或者知道怎么解决,或者知道相关网上信息的,请帮忙告知。分数不是问题! 先谢谢...
在Redhat7.3下,多线程多CPU,在非常高频率Socket端口Send操作的时候,大概是1000次/秒以上, 持续出现EINTR错误。 有高手知道原因,或者知道怎么解决,或者知道相关网上信息的,请帮忙告知。分数不是问题!
先谢谢了!
先谢谢了!
|
你是不是在调用select()时出现的EINTR错误?
|
你的程序里使用信号了吗?
|
看看发送的字节和头计数是否相符!
|
up
|
SOCKET在读、写时,应该忽略EINTR信号。
如:
while(retval = write(m_Fd,buf,size), retval == -1 && errno==EINTR)
;
while (retval = read(m_Fd, buf, size), retval == -1 && errno == EINTR)
;
如:
while(retval = write(m_Fd,buf,size), retval == -1 && errno==EINTR)
;
while (retval = read(m_Fd, buf, size), retval == -1 && errno == EINTR)
;
|
up