什么是Socket?Socket是什么呢?
- 实际上Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。
- Socket跟TCP/IP协议没有必然的联系。Socket则是对TCP/IP协议的封装和应用(程序员层面上)。
- Socket编程接口在设计的时候,就希望也能适应其他的网络协议。
- Socket的出现只是使程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、 listen、connect、accept、send、read和write等等一些方法。
- TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(Socket)。
应用层、Socket抽象层、运输层、网络层、链路层的网络结构
socket是对TCP/IP协议的封装,它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。
socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件抽象层,是一组调用接口(TCP/IP网络的API函数)
而socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
客户端与服务端通过Socket进行交互式的过程?
socket的大致流程如下:
服务器端先初始化socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。