网络由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

IP协议对应于网络层,TCP协议对应于传输层,HTTP协议对应于应用层,三者从本质上来说没有可比性,Socket则是对TCP/IP协议的封装和应用。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

CocoaAsyncSocket是一个十分好用的异步Socket库,本文将以CocoaAsyncSocket作为工具进行网络通信的操作,Demo源码链接在文章末尾。

linksmart项目截止目前已经支持了17个国家的语言,从诞生到现在也已经经历了很多程序员的修改和维护,代码已经变得十分混乱。因为公司一直在接新的定制项目,所以也没有时间进行一次彻底的重构,只能在维护某方面的BUG的时候,对相关代码进行局部重构。

StravaKit 是一个比较新而且代码比较规范的第三方SDK,但是目前还没有上传功能(详见 todo) 。所以我不得已对StravaKit 0.9.5增加上传功能,并进行一些简单封装和改编,使之能够植入到公司项目中。由于时间有限,我只增加了上传fit文件的功能,并且使用了第三方框架Alamofire,所以需要在项目中导入Alamofire