Java:这两种设置Socket超时时间的方法有啥不同吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:这两种设置Socket超时时间的方法有啥不同吗?相关的知识,希望对你有一定的参考价值。
方法一:
Socket s=new Socket("127.0.0.1",3000);
s.setSoTimeout(10000);
方法二:
Socket s=new Socket();
s.connect(new InetAddress(host,port),10000);
Socket timeout 是连接上以后,server没有回应的超时。 参考技术A 方法一是inputStream.read()方法的阻塞时间,即等待服务端返回流的等待时长
方法二是客户端与服务端进行连接的超时时间,即xx秒内建立不了连接就报连接超时的异常
二者控制超时的侧重点不一样,就像打电话一样,方法二是打电话十秒你不接电话我就挂了,方法一是打电话接通后,等你十秒不说话就挂,十秒后说不说话都不听了 参考技术B 没什么区别 就只是在使用的时候函数不一样而已 好比吃饭你先吃饭还是先吃菜 还是一口菜一口饭的区别本回答被提问者采纳
java项目页面为啥会超时?
页面超时会弹出超时提示,但是为什么会超时呢?
是客户端没有想服务器发起请求?还是页面没有和数据库发起数据交互?或者其他的原因。
求热心的码神解答。
同时数据库连接也会超时的问题,这个就跟数据库连接池有关系了
举个简单例子,你登陆网上银行,一段时间不操作,就会超时不能发起请求了,必须重新登陆才行追问
您的意思是,项目设置了超时时间30分钟,30分钟之内页面没有向‘服务器’发起请求就算超时。
而不是页面没有向’数据库‘发起请求?
您的例子‘登陆网上银行’,页面跳转属于向服务器发起请求吗?
直白点讲,只要你是点击网页的任何链接,提交的任何表单,都是想服务器发送请求
如果你在服务器设置的超时时间内没有发起以上方式的任何请求,那么就会超时
客户端一般来讲是不会直接操作数据库的
客户端(浏览器)------>服务器-------->数据库
一般中间件 例如:Tomcat 的session会话时间为30分钟 如果你不进行操作 会自动释放掉.
如果想不超时 只要修改配置就可以.追问
我设置的是30分钟。
我的意思是这样的,30分钟之内,不进行什么操作才会释放session?
是不点击页面?还是不发起请求?还是不查询数据?
你所说的 点击页面 查询数据库 其实都归于发送请求.当前session就会处于空闲状态.就会释放掉.
说白了点 就是你开启系统之后,不发送任何请求.
以上是关于Java:这两种设置Socket超时时间的方法有啥不同吗?的主要内容,如果未能解决你的问题,请参考以下文章