今天突然想到这个问题TCP建立连接需要服务器端和客户端三次握手,SOCKET也需要服务器端和客户端进行交互绑定ip和端口什么的。见下图:
先来看看SOCKET建立连接的过程:
再来看看TCP建立连接(三次握手)的过程:
最后看看TCP断开连接的四次握手:
socket只是通信上一种通信方式, TCP是一种通信协议,我们所开发的程序大都都是基于TCP协议的socket通信,当然也可以使用其他协议来通过socket通信,比如 UDP, 更强悍的话,你可以自定义协议来通过socket进行网络通信。
从OSI参考模型上来区分,socket是介于应用层和传输层中间的一层中。提供了应用程序调用其底层网络请求的API。看下边的这个图很容易理解。
具体可以参看此博文,讲的比较详细:
http://blog.csdn.net/lvyuan30276/article/details/50458572