我对socket 和socket 连接的理解

 Socket 就是一个通信工具的抽象。比如进程A和进程B 需要通信,那么A和B都必须各自拥有一个Socket,就像打电话一样,通话的双方都有一个电话机,那么进程A和进程B的通信,就变成进程A的Socket和进程B的Socket相互连接、断开的过程。Socket 中包含了地址、端口号等信息,Socket通信强调的是通信过程,屏蔽了通信细节。我们可以这么理解,Socket 就是通信双方的通信工具,提供了进行通信的端点。至于Socket的连接细节,是由网络协议,以及通信物理介质来完成的。Socket 通信支持本地通信(进程间),也支持远程通信(网络通信)。
 通信的双方有请求方和响应方,可以理解成客户端和服务端。
 客户端的Socket的请求过程:
 <1>打开Socket,建立Socket 连接。
 <2>向Socket 写入请求数据
 <3>从Socket 中读取响应数据
 <4>关闭Socket
 服务端Socket的响应过程:
 <1>打开Socket
 <2>绑定Socket
 <3>监听其他Socket 对本地Socket的请求
 <4>读取其他Socket 的请求
 <5>将响应结果,返回给请求它的Socket
 <6>关闭Socket
 因此可以将Socket 理解成一个特殊的文件,因为文件的基本操作就是打开文件、写入/读取数据,关闭文件。
 Socket 连接就是TCP连接或者UDP连接,Socket 连接一旦建立,就会一直保持连接,直到通信的任何一方主动断开连接。Socket 连接是处于传输层的。
 Http 协议是应用层的协议,Http连接是属于一次连接,http请求通过TCP连接到服务器,服务端响应请求后,连接就结束了。

你可能感兴趣的:(我对socket 和socket 连接的理解)