socket传输文件的想法,不晓得可行么 传输用xml或json但是没有实现传输文件现在的想法是把文件序列化到xml或json中来传输大家怎么看?大家怎么做的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这和你传文件有什么区别,都是二进制流传输,折腾啥,一样是每次传输一定量的数,你用MemoryStream加载文件,逐块的传输流数据就好了 传文件关键字(Word)+文件名长度(Word)+文件内容长度(LongWord/QWord)+文件名+文件内容,一起提交服务器收到这个些包后,首先得到知道要传文件了,然后得到文件名和文件内容长度了,然后把这个两个加起来再+2+2+4/8,然后判断从收到文件关键字起,是否已经够这个长度了,如果够了,说明文件文件传送结束了,结束之后的内容就是其他数据包的了得到文件名后可以把之后的收到的文件长度范围的包直接写到这个文件中即可。 如果一定要按xml/json传,最好能支持嵌入二进制数据,否则文件要先编码再传输、收到了最后解码,这里效率就低了 都是传输,XML只是个标准接口的数据。当然可以。用途不一样而已。 用用xml或json,你要先转换成对应的格式,不显示麻烦了么还不如直接用MemoryStream Delphi的IntraWeb运行报错 Indy10 中IdSMTP+IdMessage向QQ发邮件出现如下的问题,如何解决,谢谢! 如何在DBGRID的指定列上加入别一个DBGRID? 求一个sql语句,我认为有点难度! 简单的小问题 新手的“超难”问题: 如何调用API API函数是编写应用程序的基础还是核心??? 怎么把数据库里一个字段的值放到ListBox中? N难的题:Delphi怎么编写一个需要Smtp认证的发邮件程序? 程序运行没错,可是访问数据库会出现错误!急 Delphi中的array of Double类型
服务器收到这个些包后,首先得到知道要传文件了,然后得到文件名和文件内容长度了,然后把这个两个加起来再+2+2+4/8,然后判断从收到文件关键字起,是否已经够这个长度了,如果够了,说明文件文件传送结束了,结束之后的内容就是其他数据包的了
得到文件名后可以把之后的收到的文件长度范围的包直接写到这个文件中即可。
还不如直接用MemoryStream