看了很多的博文,各有各的好,自己也理解了一点。
打个比方,现在你的书包里有一台笔记本电脑(server),一个耳机(client),一个u盘(clinet),一个鼠标(client),socket就可以想象成笔记本电脑上的usb接口、音频接口,耳机需要连接到电脑听歌,需要用到音频接口,u盘需要链接电脑拷贝资料,需要用到usb接口,鼠标需要链接电脑才可以操作系统光标,需要用到usb接口,socket就负责帮助这些外接设备找到笔记本电脑中相对应的驱动以便他们完成自己的工作,而对于电脑而言,要利用U盘、利用耳机、利用鼠标也需要有对应的插口(socket)支持
所以说,socket就是位于两个层面中间的一个参与者,服务于两方,http是应用层协议,解决如何包装数据,TCP/IP协议是传输层协议,主要解决数据怎么在网络中传输,一个网络协议 + 一个ip + 一个端口号,就组成了一个socket