什么是Socket:
先了解一些前提: 网络由下往上分为 物理层 、数据链路层 、 网络层 、 传输层 、 会话层 、 表现层 和 应用层。 通过初步了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。 TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍: 我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议。 应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。 WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。” 什么是Socket: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。 socket本质是编程接口(API),对TCP/IP协议的封装。 它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。 socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件--抽象层,是一组调用接口(TCP/IP网络的API函数) TCP