javasocket 相同的代码在不同的机器上为什么有差别

chaozhiwang 2013-03-23 11:27:53
java 用socket 实现文件上传,在自己电脑测试可以实现上传,就是把文件传到一个文件夹下,模拟上传。但是在另一台电脑上传到一半就卡在那,比如上传到34.56%,56.78%就停在那,我程序中文件上传会显示上传进度。有什么原因会引起在别的电脑不能上传,都是相同的代码,端口都一样。。有可能是端口的原因吗?哪位高手帮我解答下。。

注:上传的文件是同一个文件,在别的电脑一次都没成功,每次出现都是相同的问题,就是文件上传进度百分比不一样。在自己的电脑一下子就上传完毕的。。。分数只有20分了,请大家不要嫌弃


关键代码:
while (true) {
int read = inputStream.read(b);
if (read == -1) {
break;
}
fileOutputStream.write(b, 0, read);

log.info("文件已经接收:"+ format.format(((double) file.length() / length) * 100)+ "%");
if (((double) file.length() / length) * 100 == 100.00) {
double end = new Date().getTime();
log.info("文件消耗时间:" + (end - stat) / 1000);
fileOutputStream.flush();
fileOutputStream.close();
}
}
...全文
184 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaozhiwang 2013-03-24
  • 打赏
  • 举报
回复
#1:端口开通的,是8899,因为是公司的项目,部署到别省的服务器上,那个端口要申请开通过,能telent通,而且那台服务器windows 防火墙都没打开。。还有一个疑问,就是我自己的电脑socket 用的是同一个端口,但是telnet 不通,还是能上传文件 #2:((double) file.length() / length) * 100 是小数点两位数,如34.56%
  • 打赏
  • 举报
回复
((double) file.length() / length) * 100这个结果是小数点后有两位的double吗?
yls_2523168510 2013-03-23
  • 打赏
  • 举报
回复
端口号是多少,可能是端口号没有开通,以前我写网络编程也遇到过这种,后面是端口号没有开通,开通方式: 控制面板上- windows防火墙-高级设置-入站规则-增加规则-端口 希望对你有用!

62,620

社区成员

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

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