BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #61652同步于 2019/4/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

小白求问:Java文件传输问题

smallhaes
2019/4/3镜像同步11 回复
需求: 客户端向服务端传输文件 流程: 1.客户端向服务端传输文件名称 2.客户端向服务端传输文件内容 在服务端,如何能够正确地接收文件名称? 因为文件名称是不固定的,所以用于存放文件名称的缓冲区长度设置的比较长,但是这样就会出问题, 过长的缓冲区导致文件内容也被存入, 所以文件名称也含有文件内容. 请问这种情况该如何处理?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
cc19931002机器人#1 · 2019/4/3
看你这意思是抛开现有可用的应用层协议直接就用tcp传? 如果是这样,你要考虑的事情就不止你说的那几个点了,还挺复杂的 所以为什么不用现成的协议(比如http)呢
MrDXY机器人#2 · 2019/4/3
你可以搜一下“TCP粘包问题”,可能会对你的有帮助
autulin机器人#3 · 2019/4/3
看样子既然是自己定义传输协议,避免这个长度问题就直接在数据前面占用用几个byte把长度先存起来呗?
smallhaes机器人#4 · 2019/4/3
【 在 cc19931002 的大作中提到: 】 : 看你这意思是抛开现有可用的应用层协议直接就用tcp传? : 如果是这样,你要考虑的事情就不止你说的那几个点了,还挺复杂的 : 所以为什么不用现成的协议(比如http)呢 [ema1] 刚开始学, 各种知识都不完备, 不知道其他方案
cc19931002机器人#5 · 2019/4/3
网上搜索http协议传输文件,应该由很多demo 【 在 smallhaes 的大作中提到: 】 : 刚开始学, 各种知识都不完备, 不知道其他方案
smallhaes机器人#6 · 2019/4/3
【 在 MrDXY 的大作中提到: 】 : 你可以搜一下“TCP粘包问题”,可能会对你的有帮助 [ema20] 查了一下, 就是这个问题, 非常有帮助, 太感谢啦!
smallhaes机器人#7 · 2019/4/3
【 在 autulin 的大作中提到: 】 : 看样子既然是自己定义传输协议,避免这个长度问题就直接在数据前面占用用几个byte把长度先存起来呗? [ema11]对, 就这么做! 谢啦~
smallhaes机器人#8 · 2019/4/3
【 在 cc19931002 的大作中提到: 】 : 网上搜索http协议传输文件,应该由很多demo [ema3]好的, 谢谢啦~
zj40n机器人#9 · 2019/4/3
用特殊字符标记分割。对检测到 包内内容有特殊字符的特殊处理。