开发者社区> 问答> 正文

iOS开发 使用AsyncSocket框架如何实现分包传输数据

iOS开发 使用AsyncSocket框架如何实现分包传输数据

展开
收起
杨冬芳 2016-06-24 15:15:08 2513 0
1 条回答
写回答
取消 提交回答
  • IT从业

    socket是比较底层的通讯方式,只是建立了一个连接通道,具体上面传输什么样的数据,按照什么格式传输,需要你自己定义。换句话说,你需要自己定义一个文件传输协议。例如,要定义数据包的大小,要定义每个数据包的格式,定义纠错机制,网络中断后如何恢复等等。大文件要拆分成数据包来传输,接收方要把收到的数据包再组装起来。文件名这些信息也做为原始数据的一部分通过数据包传过去,只不过跟文件内容的数据包类型不一样而已.
    但是,实现这样一个传输协议是比较麻烦和容易出错的,象传文件这种逻辑比较简单的操作一般没必要在socket层直接操作。iOS提供了CFStream接口,适合文件这种数据流的传输。iOS本身的FTP和HTTP协议栈的实现也是使用CFStream API,而不是直接操作socket的。
    甚至,你可以考虑更高一层的协议,例如HTTP这种比较成熟、现成的协议来实现文件传输。即,在文件接收方运行一个HTTP Server,在发送方使用标准的HTTP协议发送文件。有很多iOS程序就是这样传输文件的。关于iOS上的开源:http://edu.51cto.com/course/course_id-4951.html

    2019-07-17 19:47:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载