什么是Socket?什么是套接字?哪里用到了套接字和Socket?
作为一个渣渣,我是真滴难以理解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程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~