日期:2014-05-20  浏览次数:20639 次

求一个Java问题的思路
我传输文件用Java NIO的transferTo()方法。

但是在传输过程中不知道网线是否会断掉,这个方法就会阻塞.我想不让它阻塞,让它结束,各位有什么好办法吗?

谢谢大家

------解决方案--------------------
分小块传输,等待回复,如果长时间没回复,可能网线掉了,我猜的
------解决方案--------------------
socket的阻塞方法有一个限时阻塞的,通过传入较短的阻塞时间检查端口状态及异常信息可以判断出现问题的原因。
------解决方案--------------------
try catch
当网线断掉后,服务端往客户端继续写数据会抛相应异常,
捕获该异常,抛出相关提示信息。。。
------解决方案--------------------
设置Channel 的阻塞模式为非阻塞 configureBlocking(false);

调用transferTo方法,当断网时,应该会抛出异常的,捕捉这个异常就可以了。