前言
一说到网络,大家必然会想到 TCP、UDP、Http、三握四挥等,但是一说 Socket,大家可能会有点模糊了,只知道网络中会用到,但是 Socket 究竟是什么? 套接字又是啥?为啥网络离不开 Socket?
Socket 是什么?
Socket 其实就是套接字,大部分人对于 Socket 的理解就是它可以实现一个简单的网络通信,但是它「具体解决了哪些问题?有什么实际的作用?为什么会有一个 Socket 出现?」
Socket 其实是在「应用层与传输层之间的一个产物」,它把传输层的很多复杂操作封装成一些简单的接口,来让应用层调用以此来实现进程在网络中的通信,Socket 是对端口通信开发的工具,它要更底层一些。
Socket 其实类似于一台洗碗机,它的功能就是洗碗(网络通信),如果没有它,你可能需要自己手动去洗碗(手动调用传输层、应用层之间的各个 api),但是有了它你只需要点击开关、调整时长就行了(封装了 api),你可以不需要它,但是如果没有它,洗碗(应用层与传输层之间的交互)将变得非常繁琐。
一次完整的网络通信必不可少的会经过物理传输层的网线和网卡,