发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 下一页 Go 2

JAVA 的Socket api为什么没有接收和发送超时的参数

2009-04-15 18:01
赞助商链接

JAVA 的Socket api为什么没有接收和发送超时的参数,记得c语言中socket实现还有这两个参数可设,那java如何处理socket接收和发送时间很长的问题呢?

2009-04-16 09:02

每次轮询都是一次检查,你可以决定轮询多长时间,也可以用NIO socket,有数据事件才会通知激活,无需你判断。

2009-04-16 11:43

具体场景可能是这样的,浏览器端经tomcat等web容器访问应用的serlvet,该servlet进行具体的业务操作,比如是一个很费时的数据库的查询,先不论这个查询为什么费时,有没有优化余地,我现在就假设他就是很费时,有个几分钟才返回结果,我们知道tomcat的实现底层就是java scoket api,这样很可能就有问题,浏览器和tomcat建立了底层socket连接,浏览器端等半天没有数据来,会不会主动把连接关闭了,要不这么长时间占用连接,也是不合理的。tomcat等数据库端数据半天也没来。会不会也把连接关闭了,等查询结束,tomcat把结果往socket里写时,发现socket远端已经关闭了,会抛出异常,如果有发送超时,接收超时等参数可设置,是不是就能解决这中发送和接受很长时间的问题,特别说明:tomcat5.5是没有nio的

2009-04-16 11:48

这个问题也可以这样模拟,serlvet业务方法中让当前线程sleep个几分钟,你会发现就有问题了。我就是想知道,java的scoket api为什么就没有考虑过这样的问题呢

2009-04-16 12:27

>scoket api为什么就没有考虑过这样的问题呢
因为事件触发reactor模式效率最高,所以直接跳到最好的解决方案。

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com