用java socket传输多文件遇到的问题
从客户端向服务端发送文件,文件都是30M+的大图片。我为了方便用对象输出\输入流的方式一张一张的发送\接收文件,一开始我试着上传5张图片,蛮好的。后来我试着上传14张图片...
从客户端向服务端发送文件,文件都是30M+的大图片。我为了方便用对象输出\输入流的方式一张一张的发送\接收文件,一开始我试着上传5张图片,蛮好的。后来我试着上传14张图片,服务端在接收了7张图片后就一直处于等待接收的状态,客户端就一直处于正在发送的状态,但是看不见之后的图片。不明白是怎么回事,是不是client发送文件大小有限制?
展开
4个回答
展开全部
我觉得应该是你在服务器端的接收之后存储的缓存是不是太小了 当你的文件大于这个缓存的最大容量时 就会抛出异常 程序虽然没有停止 但是那个监听端口就会被关闭掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从理论上好像没有这条限制哈,看一下有没有设么异常。
追问
我做的是个ui,上传图片是通过子线程(通过继承swingworker,个人感觉这个类像是异步处理工具类,所以就用它了)。关于异常倒是没有提示给我,但是我通过断点发现在doInBack..()方法体中在循环传递第八个图片的时候中断了,子线程就这样中断了。不清楚为什么。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
架构:建议写成多线程池,每发一张图片从中取一个线程,发完关闭
你的问题很有可能出在客户端,查找一下发送线程里是不是有互锁出现了
你的问题很有可能出在客户端,查找一下发送线程里是不是有互锁出现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到了相同的问题,请教怎么解决的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询