关于Socket编程中超时处理的问题困惑,请大家近来帮帮忙! setSoTimeOut() 可以设置多次你那个 bufIn 是怎么来的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每次的time out时间可以不同,是你最近的一次设置setSoTimeOut()。你认为setSoTimeOut()好像没有用,那你是怎么测试的?我在前面见过有人认为time out是连接不上后过多久才返回的时间。实际上如果联接不上,是立即返回错误的。time out是连接上并且传输了request,等待server端处理,但是server在time out时间内不能处理完,程序就返回错误。你可以在server段用Thread.sleep()来延时,就可以看到time out效果 谢谢楼上的两位,我用的是标准的FTP服务器,比较难测,我的方法是把setSoTimeOut()里的值设得比较小,如一毫秒,可是好像并没有抛出异常,难道连接Internet上的FTP服务器,延迟会小于一毫秒?我的bufIn是这样来的:control = new Socket(addr, port);j_bufIn = new BufferedReader(new InputStreamReader(control.getInputStream()));请有经验的兄弟帮忙看看,再现等待。 setSoTimeout是设置连接之后的响应时间的,可以多次设置 1毫秒,你觉得能连上FTP server吗?? setSoTimeout(int timeout);Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. 你设定的超时是0.1秒,能连上吗? 帮你顶一下,看看DOC api的文档我觉得就可以解决这个问题了 setSoTimeout 是在 bufIn.readLine() 执行之后开始计时的如果没有抛出任何异常 那么基本上 bufIn.readLine() 是读到东西了1 毫秒 好像是少了一点你的 FTP服务器 是 loacl 的? 我也遇到这样的问题,如果在等待读的时候对方socket断了怎么办,不能让读的线程一直等待,用下的方法可行吗?try { socket.setSoTimeout(100); line = bufIn.readLine();}catch(){...}如果可行,具体的超时数值该怎么设置? JAVA基础题求解 用Canvas画了一张图片后,想在上面添加控件,可是显示不出来怎么办? 请高手看一下 有关000001数据格式的操作,解决了里面结分 怎么样判断某个类是否是另一个类的子类??? 醒目[100分] 求:Java学习的好教材~ log4j是否支持直接把日志信息写入数据库? javabean中文怎么说? 很苯苯的问题~~~~~~~~~~~~~~关于一些概念~! 通过scjp后,在沈阳薪水能达到多少? 散分加问个问题,迟到就没有了 有没有JAVA能做而C#做不了的?
你认为setSoTimeOut()好像没有用,那你是怎么测试的?我在前面见过有人认为time out是连接不上后过多久才返回的时间。实际上如果联接不上,是立即返回错误的。time out是连接上并且传输了request,等待server端处理,但是server在time out时间内不能处理完,程序就返回错误。你可以在server段用Thread.sleep()来延时,就可以看到time out效果
我用的是标准的FTP服务器,
比较难测,
我的方法是把setSoTimeOut()里的值设得比较小,
如一毫秒,
可是好像并没有抛出异常,
难道连接Internet上的FTP服务器,
延迟会小于一毫秒?
我的bufIn是这样来的:
control = new Socket(addr, port);
j_bufIn = new BufferedReader(new InputStreamReader(control.getInputStream()));
请有经验的兄弟帮忙看看,再现等待。
Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.
你设定的超时是0.1秒,能连上吗?
如果没有抛出任何异常 那么基本上 bufIn.readLine() 是读到东西了1 毫秒 好像是少了一点
你的 FTP服务器 是 loacl 的?
try {
socket.setSoTimeout(100);
line = bufIn.readLine();
}catch(){...}如果可行,具体的超时数值该怎么设置?