java中,利用socket传送大文件,中途停止问题

java中,利用socket传送大文件,中途停止问题,第1张

thread里面接收数据应该是一个循环把?

那么就给这个循环加一个跳出条件,比如说

private boolean stop=true

在循环当中增加

if(stop=false){

break

}

public void setStop(boolean stop)

{

this.stop=stop

}

然后在需要停的时候调用setStop(false)就可以了

上面纯手打,代码拼写什么的可能有错大概就是这个意思

顺便说一下,thread.interrupt()是用来防止sleep或者wait方法卡死的,不会让线程终结。你要让线程结束还是要手动让程序跳出循环

很简单,就是把多个文件“变成”一个文件传送就可以了,每个文件都是一个流,把这些流输入到一个流中合并流传输即可,这个是基本思路。实现差不多以下两个方法

1、直接流拼接,循环要传输的文件列表,多个InputStream,然后输出到一个OutputStream,这个out就是发送数据的端口,为了接收端能够识别每个文件从而分割流,需要每个流中结尾添加分隔符。其实这就是HTTP文件上传的做法。

2、就比较简单了,职业使用ZIP工具包吧需要传输的多文件压缩成一个文件传输,接收端直接解压缩就完事。

需要注意的是,发送多文件上传你需要提取计算好总传输量字节大小放在传输报文头部告诉接收端你要发送的数据有多大,不然接收端可能无法完整接收数据。

1.电脑已经搭建python环境

2.深入到需要传输的文件目录下,此处以分享 nemo-huiyuanfei 文件为例

3.在路径栏输入 cmd 按回车进入终端

4.输入命令 python -m SimpleHTTPServer 8090 按回车 (端口号可以任意,不用必须为8090)

5.在局域网中任意浏览器输入框输入 文件所在主机 IP + Port 即可访问此文件目录并下载 ()

6.点击需要下载的文件即可下载

7. 【注意】python3.X 的命令输入为 python -m http.server 8090


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/5859957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-02-22
下一篇 2023-02-22

发表评论

登录后才能评论

评论列表(0条)

保存