Socket 通信 知识梳理
2017-08-24 本文已影响60人
铜雀春深锁不住
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