java.net.sockettimeoutexception: read timed out的问题

2016/12 01 13:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于sbf999胜博发老虎机的点点滴滴

client有如下伪代码:

try{
    Socket ss = new Socket;
    ss.connectnew InetSocketAddress127.0.0.1, TCPServer.LISTEN_PORT, 4000;
    ss.setSoTimeout5000;
    
    //dosomthing
    InputStream is = ss.getInputStrean;
    log.info"read start time:" + System.currentTimeMillis
    int r = is.read....;
    log.info"read start time:" + System.currentTimeMillis
} catchException e{
    log.info"throw exception time:" + System.currentTimeMillis;
}

下面如许的逻辑,ss.setSoTimeout5000;把读超时设置为5000ms,可颠末测试read的工夫也不过才619ms 就抛出了如题的十分?

这是效力端是同步告诉,工夫过长,把效力端修正成异步的即可

这个timeout,并不是触发的你setSoTimeOut5000的十分。我的理解是soTimeOut是整个Socket树立衔接的最长超时工夫,假如你之前connect 没有TimeOut,Read 没有TimeOut,Write 也没有TimeOut,但是你的socket仍然没有失掉封闭,事前间跨越SoTimeOut的时分,就会抛出十分。

(看完/读完)这篇文章有何感想! 来看看sbf999胜博发老虎机是怎么评论的吧!

--转载请注明: sbf999胜博发老虎机_胜博发娱乐老虎机_sbf999胜博发pt娱乐老虎机 » java.net.sockettimeoutexception: read timed out的问题

发表评论

(必填)