Rob*_*ert 120 java android tcp httpconnection
我正在使用我正在使用的库的问题.它可能是图书馆,也可能是我使用它错了!
基本上,当我这样做时(以毫秒为单位的超时)
_ignitedHttp.setConnectionTimeout(1); // v short
_ignitedHttp.setSocketTimeout(60000); // 60 seconds
Run Code Online (Sandbox Code Playgroud)
没有生成超时异常并且它正常工作,但是,当我执行以下操作时,
_ignitedHttp.setConnectionTimeout(60000); // 60 seconds
_ignitedHttp.setSocketTimeout(1); // v short
Run Code Online (Sandbox Code Playgroud)
我得到一个Socket Exception.
所以,我的问题是为什么我不能模拟连接异常?我是否误解了套接字和连接超时之间的区别?图书馆在这里(尚未正式发布).
Rob*_*ert 213
一个连接超时仅在启动TCP连接发生.如果远程机器没有应答,通常会发生这种情况.这意味着服务器已关闭,您使用了错误的IP/DNS名称,错误的端口或与服务器的网络连接已关闭.
甲套接字超时是专用于监视连续输入的数据流.如果数据流在指定的超时时间内中断,则认为连接已停止/损坏.当然,这仅适用于始终接收数据的连接.
通过将套接字超时设置为1,这将要求接收每毫秒的新数据(假设您已经读取了数据块并且块足够大)!
如果只有传入流停止超过一毫秒,则表示您正在超时.
ent*_*erd 74
一个连接超时是程序愿意等待安装到另一个进程的连接的最大时间量.此时您没有获取或发布任何应用程序数据,只是建立连接本身.
一个套接字超时是等待单个数据包时超时.这是一种常见的误解,即套接字超时是接收完整响应的超时.因此,如果您的套接字超时为1秒,响应由3个IP数据包组成,其中每个响应数据包需要0.9秒才能到达,总响应时间为2.7秒,则不会超时.
| 归档时间: |
|
| 查看次数: |
109056 次 |
| 最近记录: |