学习真不是一件很容易的事情啊。还有,古人说的话真的很有道理,最近感受最深的一句就是“温故而知新”。
很多东西,原来看过,不说忘不忘吧,就说学习新东西新概念哪有一次就学会的。所以再次回头翻阅书籍,和视频。总是有重新的认知和感悟。
接下来写android网络编程,这个有点像一个模块。像一门工具,基础内容不多却很有用。
首先我先来说一下自己对这一块的认识。
计算机网络体系结构示意图如下:
可以看出这个体系分为很多层。数据从上往下进行封装打打包。到了物理层的时候,进行硬件上的传输。这样就达到网络的目的——数据的传输。这就是为什么网络能把地球变成地球村。
当然,网络编程应该是属于哪一个阶段事情呢。应该在非硬件层次之上。这好像是废话。不过确实是这样子的,不过的是我们编程的层次而不是这样的,我们可能仅仅为了做一款APP,所以我们在应用层就可以实现这个编程了。而接下来的什么封装打包过程,可能不是我们考虑的,而是让完整的系统去完成。
我再查找android网络编程的时候,最热门的博客,把它分为基于http协议的和scoket协议的。这些协议就是怎么把这个数据封装的方法,很好理解。
然而http协议是在TCP/IP协议之上的协议。这里插入一幅图:
简直清楚的不得了,可是我也是苦恼过不少时间。
Socket是不是在其中某一个协议呢?并不是,他只是TCP和IP中的一个概念,这个概念就是通讯两端的一个端点。然后根据这个端点来传递数据。
说了这么多,还是没有写怎么传输数据,代码怎么写。其实我不想写这些东西,因为网上一大把,专业的标准案例。
而我们写这些代码也并不是我们手动的一点点包装这个数据,我们只是使用别人写好的代码,也就是接口或者是抽象类。去实现我们自己功能。最为标准的就是HttpClient接口和HttpURLConnection接口。
当然还有很多别的相关网络的技术,我还没有了解,就不写了。以后再补上。