今天宠物迷的小编给各位宠物饲养爱好者分享服务器超时时间设置的宠物知识,其中也会对如何控制C#Socket的连接超时时间(如何控制CPU温度)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
Socket***nnect连接超时有二种情况: 1.由于网络的问题,TCP/IP三次握手时间>timeout的设置时间。这在国外访问weibo时,并且网络环境极差的情况下有可能发生。解决的办法:调大socket***nnect方法中的timeout参数值,比如50s,linux默认最高是70s,如果超过70s没有意义,linux会采用70s.但是当调大之后,发现不到10s就报timeout exception。通过国外的机器ping api.weibo***m发现unreachable。说明客户端在传输层之下的网络层就发现连个Syn的报文都发不出去,更不用说三次握手了,客户端直接失败并抛timeout exception。 经验:在connection timeout诊断的第一步应该是ping一下确认网络层没有问题。注:客户端设置了timeout,但并不会等到超时才返回异常。客户端只要第一时间发现连接失败,就会抛timeout exception。2.如果timeout设置的时间足够,但是由于服务器端的处理能力较差,比如缓冲连接队列较小,而应用层的处理能力没有连接缓冲快,导致缓冲连接占满,而拒绝新的连接。在服务端因为连接队列占满而拒绝服务的期间,客户端的通过TCP协议重试三次。每次的时间翻倍。如果三次时间的累加<timeout参数值且能连接上,属于正常情况,表示队列腾出空位放当前连接。如果三次时间的累加<timeout参数值且未能连接上,则客户端会立刻抛出timeout exception,而不等timeout到期才抛。 下面是一个异步socket典型的连接程序connectDone 是ManualResetEvent类型可以在connectDone.WaitOne();中使用等待的时间来限制连接超时比如connectDone.WaitOne(5000);是超时时间为5秒connectDone.WaitOne(); public void Conn(){try{ClientSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);IPAddress ipAddress = IPAddress.Parse(tcpIpServerIP);IPEndPoint remoteEP = new IPEndPoint(ipAddress, tcpIpServerPort);connectDone.Reset();ClientSocket.BeginConnect(remoteEP,new AsyncCallback(ConnectCallback),ClientSocket);connectDone.WaitOne();StateObject state = new StateObject(bufferSize,ClientSocket);ClientSocket.BeginReceive(state.buffer,0,bufferSize,0,new AsyncCallback(ReceiveCallback), state);}catch(Exception e){OnErrorEvent(new ErrorEventArgs(e));}}所有代码见:http://blog.csdn****/zhiang75/article/details/75915
可以通过如下设置,使SecureCRT连接CVM时,不断开连接:
打开secureCRT选项(Options),选择会话选项(Session Opetions),点击终端(Terminal),在右侧反空闲(Anti-idle)的框中勾选发送协议NO-OP(Send protocol NO-OP),时间设置为每120秒(every 120 seconds)。 希赛上有很多这种知识的。
以下是设置session时间的3个方法:
1. 在tomcat——>conf——>servler.xml文件中定义:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
defaultSessionTimeOut="3600"
2. 项目所在目录下的 web.xml中定义:
20
3. 在程序中定义:
session.setMaxInactiveInterval(30*60);
设置单位为秒,设置为-1永不过期。
不确定默认超时时间是多长,感觉应该不到一分钟,我也是在使用过程中遇到自动断开连接的问题,然后在网上找到的方法。
Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-OP
(中文版:选项->会话选项->终端->反空闲->发送协议NO-OP)
后面的设置时间默认的是 60 秒,第一次没有修改就使用的默认 60 秒结果还是超时断开了,索性改为 10 秒,目前看起来还比较正常。
超时分两种,一种是客户端请求连接超时,一种是服务端处理时间过长,客户端等待超时。 看你要捕获哪一种?
第一种你可以捕获ConnectTimeOutException;
第二种你可以在客户端设置超时时间,比如发起请求之后服务端5秒还未返回处理后的结果就认为超时;
在异常处理中执行正常业务逻辑即可。
http { keepalive_timeout 65; client_header_timeout 10; client_body_timeout 10; send_timeout 10; 释: keepalive_timeout:设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接。 client_header_tomeout:设置客户端请求头读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误。 client_body_timeout:设置客户端请求主体读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60。 send_timeout:设定响应客户端的超时时间。这个超时仅限于两个链接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。
你可以在web.xml中使用元素 30 其中的30表示30分钟
可以通过如下设置,使SecureCRT连接CVM时,不断开连接:
打开secureCRT选项(Options),选择会话选项(Session Opetions),点击终端(Terminal),在右侧反空闲(Anti-idle)的框中勾选发送协议NO-OP(Send protocol NO-OP),时间设置为每120秒(every 120 seconds)。 希赛上有很多这种知识的。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“如何控制CSocket的连接超时时间”
上一篇
内部存储器有哪些?