当前位置: 技术问答>linux和unix
LINUX C 进行TCP网络连接,怎样设置连接超时时间?
来源: 互联网 发布时间:2016-07-28
本文导语: LINUX C 进行TCP网络连接,怎样设置连接超时时间? 比如设置connect的时间,send的时间,recv的时间。超过时间了就报错返回。 | 看看这个 http://blog.csdn.net/ast_224/archive/2008/09/21/2957294.aspx | 你都想...
LINUX C 进行TCP网络连接,怎样设置连接超时时间?
比如设置connect的时间,send的时间,recv的时间。超过时间了就报错返回。
比如设置connect的时间,send的时间,recv的时间。超过时间了就报错返回。
|
看看这个
http://blog.csdn.net/ast_224/archive/2008/09/21/2957294.aspx
http://blog.csdn.net/ast_224/archive/2008/09/21/2957294.aspx
|
你都想到超时了,说明是准备用非阻塞模式咯?配合select模型吧。
先用fcntl来设置socket的非阻塞。
然后用select里的参数设置超时。
http://blog.csdn.net/ast_224/archive/2008/09/21/2957294.aspx
这里是具体的一些例子
|
简单的方法就是用setsockopt直接设置套接字属性,比如:
//设置接收超时
setsockopt(SockRaw,SOL_SOCKET,SO_RCVTIMEO,(char*)&TimeOut,sizeof(TimeOut))
//设置发送超时
setsockopt(SockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&TimeOut,sizeof(TimeOut))
|
如果连阻塞,非阻塞,以及常见的一些select模型都不太熟悉的话,就别急,慢慢看。
|
#define PRC_TIME_OUT 600
void time_out()
{
raise(SIGTERM);
}
......
signal(SIGALRM, time_out);
alarm(PRC_TIME_OUT);
.......
void time_out()
{
raise(SIGTERM);
}
......
signal(SIGALRM, time_out);
alarm(PRC_TIME_OUT);
.......
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。