1.socket是網絡通信的一項技術,android的socket通信其實使用的是java的socket通信技術。一些常用的即時通訊軟件涉及socket通信。
網絡技術最基礎的知識是基于tcp/ip x的http協議,具體內容可以看圖解http這本書。
兩個設備之間進行通訊 只需要以下信息:
兩臺計算機的ip地址 ,兩臺計算機的端口號,兩臺計算機之間的傳輸協議。
tcp/ip 協議:
tcp--- transmission control protocal
ip---Internet Protocol 這里的ip不是ip地址
tcp/ip 有著經典的五層傳輸模型
上圖省略了最底層物理層
ip地址:ip地址是每臺計算機的唯一標識
端口:區分一臺計算機上的不同應用程序,比如http端口號是80
我們把ip地址和端口號加起來叫做socket,那么socket通信也就清楚了
?socket通信機制:
? ? ? 通信的兩端都有socket,數據在兩個socket之間通過io傳輸
2.java中的網絡通信
? ?針對網絡通信的不同層次,java提供的api有
InetAddress:標識ip地址
URL:統一資源定位符
Sockets:基于tcp/ip協議的網絡通信
Datagram:使用UDP協議,將數據保存在用戶數據報中,通過網絡進行通信。
3.tcp編程
? ?tcp是面向連接的,以字節流的方法發送數據
? java中socket通信模型是這樣的
socket通信模型
4.udp編程
udp協議是無連接的,基于數據報的通信協議
最后附一張tcp/ip的核心
tcp/ip core