mayubao / KuaiChuan

仿茄子快传的一款文件传输应用

Home Page:http://www.jianshu.com/p/1b0b337829f5

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问每发送一个文件就去建立一次Socket连接会不会在很大程度上影响文件传输的速度?

Merpyzf opened this issue · comments

阅读完你部分代码后我有个问题想要请教一下,就是在使用socket进行文件传输的时候为什么不直接将所有的文件通过一次socket连接进行全部传输?既然已经制定了传输协议这样做完全是可行的啊,这一点我在阅读你代码的时候很困惑,于是就引出了我在书写代码的时候遇到的一个问题:
在写socket传输多个文件代码的时候遇到了一点问题,凑这个机会请教你一下。客户端和服务端只建立一次连接,发送端将所有要传输的文件全部发送出去,然后服务端根据指制定的协议对文件进行解析从而将受到的字节序列拆分成一个个的文件。当发送一组文件时当单个文件的大小不是特别大的时候,文件可以正常传输,这里可以说明【头信息的拆分,文件部分的解析的代码不存在问题】,但是当包含特别大的文件的时候,比如说一部电影,在传输的时候就会出现文件header信息部分解析不完整,或者解析到内容根本不是之前计算好的那部分字节,这样就导致文件没办法正常接收造成文件传输失败。这个问题已经连续困扰我两天了,一直找不到解决的办法,难道socket在传输的过程中会丢包?tcp是面向连接的啊。
我相信你的代码这么写一定是有原因的,请指教?

问题得到解决吗

谢谢,已经解决了,头信息解析失败的原因是因为没注意包装流中缓冲区的问题,正在对代码进行优化