socket多线程文件传输,如何暂停

baibinghere 2009-07-26 09:34:44
在文件传输的过程中,如果我希望能够增加暂停功能,
请告诉我,是应该中止发送/接收文件的线程么?还是有什么别的好办法?
注: 我是用的Socket,getInputStream(),文件流的方式来传输文件的。
谢谢大家~
...全文
252 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baibinghere 2009-07-27
  • 打赏
  • 举报
回复
刚才是我错了,我的程序逻辑有些错误。当一方无法得到数据时,输出方会堵塞等待的。所以这样子可以成功!
forestandriver23 2009-07-27
  • 打赏
  • 举报
回复
那就需要通知发送端了。在发送端也监听,当收到接收方发过来的暂停指令时,暂停发送数据流;接收到恢复指令时,继续发送。
baibinghere 2009-07-27
  • 打赏
  • 举报
回复
非常感谢youaremoon的回复,但是我又遇到一个问题。我这样暂停的话,接收方是暂停了,但发送方无法暂停,而且导致了
java.net.SocketException: Software caused connection abort: socket write error

所以我很郁闷并且不知道具体该怎么做。
阳二快跑 2009-07-27
  • 打赏
  • 举报
回复

while(outFlag){
while(inFlag){
transfer();
}
//暂停一会
。。。
}
要暂停把inFlag改为false,继续则把inFlag改为true,停止把outFlag改为false
baibinghere 2009-07-27
  • 打赏
  • 举报
回复
还有别的办法么?
rumlee 2009-07-26
  • 打赏
  • 举报
回复
可以关闭socket,下次再开始的时候可以进行断点续传。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧