java socket传文件

dhq1994 2016-04-13 09:13:07
用socket传文件,如果不关流,服务器就会一直等着,文件也是空的,但是我文件传完了之后还需要OutputStream写东西给服务器交互,怎么办?
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2016-04-29
  • 打赏
  • 举报
回复
自定义一个协议,先传文件长度, 然后再传文件内容,服务器收到长度后,读指定的字节数后再读下一个文件的长度和内容。如果你的系统还有其他功能,那就还得约定命令码,也就是说,收到传文件的命令码后,先读文件长度,再读文件内容。
dhq1994 2016-04-14
  • 打赏
  • 举报
回复
谢谢zys59,我用了flush, 当时的问题是服务器不知道什么时候传完,一直等着,现在我通过判断文件长度来结束循环的。不过现在出了一个新的问题,我需要连写两次文件,服务器端会把第二个文件也写到第一个文件里,怎么分开呢?
「已注销」 2016-04-14
  • 打赏
  • 举报
回复
楼上说的对,刷新缓冲区就可以了
三仙半 2016-04-14
  • 打赏
  • 举报
回复
文件输出完以后,调一次flush()方法,缓冲区中的内容就传送出去了。
jumpheightway 2016-04-13
  • 打赏
  • 举报
回复
可以不用关也能来回读写文件
冰心的小屋 2016-04-13
  • 打赏
  • 举报
回复
你可以选择开源的Java项目 比如Netty和MINA都可以做这些事比你封装的要好 欢迎光临我的博客 http://happyshome.cn

62,624

社区成员

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

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