(本篇文章文字较多,耐心看完,你会有不小的收获)
哈喽大家好,我是咸鱼
我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗?
我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通信连接,socket 的表现方式由四元组(ip地址:端口)组成
那么今天,咸鱼将跟大家打开 socket 的神秘大门,不但要搞清楚 socket 的概念,最好还能够了解它的底层实现
我们首先查看一下 socket 的翻译
我们看到,socket 可以翻译成插座、插头
那现在请想象这么一个场景:给手机充电时,你将充电插头插入电源插座里面,是不是意味着插座与充电插头连接起来了
在计算机世界中,socket 翻译成套接字,通过 socket 我们可以与某台服务器进行连接,而建立连接的过程,你可以脑补成将充电插头插进插座的过程
假设我们想要将数据从 A 电脑的某个进程传送到 B 电脑的某个进程(比如咸鱼用微信发信息给冰冰)
那么在与对方聊天的过程中,其实就是这两台电脑中的微信进程相互传输数据的过程
在这个过程中,两台电脑各自调用 socket 方法,然后会得到一个
近期评论