作为一个渣渣,我是真滴难以理解Socket和套接字,最后我决定调整一下文章论述顺序,先将哪里用到了套接字和Socket吧

1.哪里用到了套接字和Socket?

先来一段http原理的总结:
http的实现原理其实就是数据在传输过程中的,基于TCP/IP 的通信协议,主要分为四步

① 连接:客户端与服务端建立连接,写入scoket虚拟文件后就表示建立连接
② 请求:通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成
③ 应答:Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
④ 断开连接:若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
ps:这段话其实也是要理解的,对知识积累和面试都有好处的

这段话里就提及了socket和套接字,也就是说在http请求中,就是使用了socket和套接字技术。

2.什么是socket?

socket是对TCP/IP协议的封装,它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件抽象层,是一组调用接口(TCP/IP网络的API函数)

如果大家学过Java中的项目,就知道写项目需要分为dao层(mapper层),service层(包括impl层),controller层,scoket就类似于这三层中的service层,起到逻辑处理和转发调用的作用(类似于租房子时的中介?)

3.什么是TCP套接字?

TCP的套接字就是IP号加端口号
其中,IP号是网络层用来寻找主机的;端口号是运输层用来找进程的,在网络层找到主机后就依据端口号找到相应进程,从而实现用户与服务器的通信。

要不我稍微通俗一点地解释一下,就像在谍战剧里面,党组织(客户端),间谍(服务端),客户端发送http请求就是党组织要与间谍交流情报(数据),TCP套接字类似于是对接暗号,socket是中间人(谍战剧里一般是个酒楼老板?哈哈)
如果get不到我这通俗解释的意思,大家可以忽略哈。

我是“道祖且长”,一个在互联网苟且偷生的Java程序员