vlambda博客
学习文章列表

socket到底是啥?网关(Gateway)是啥?网络通信的核心是啥?

socket这个词都翻译成套接字 卧槽 这让人根本无法理解! 这个词最恰当的翻译是"插座" 但怎么理解"插座" 需要看英文的解释(中文的根本没说到根上!):


上图中 最核心的一句话是:

To the kernel, a socket is an endpoint of communication.

关键词有两个: socket是通讯的终点,这是站在内核角度看的.

注意 需要站在内核的角度看 如果站在应用程序的角度看 那可能一辈子都不理解 我自己就是若干年前就知道socket 但知道今天看到上面那句话 我才知道socket的含义

行了,socket理解透彻了! 它就是个插座(电线的终点)! 它的作用就是连接 就是你要建立网络 你得先找个插座(socket) 然后把插头插上去(用connect/bind函数连接另一台电脑的进程,或本电脑的进程),然后就行啦 该发发 该收收啦:

然后我想发送信息:

send(socket, 要发送的信息);

我还想接收信息:

recv(socket,待接收的信息);

最后 我通信完啦 那干啥 关电呗 我得关闭连接:

closesocket(socket);


以上基本就是核心的通信 网络通信的核心 就是socket 


至于WSAStartup Zeromemory getaddrinfo这些东西 都是辅助的 看看相关文献就极易理解.


下面说Gateway, Gateway这个词根本无法从中文理解。只能从英文理解 它的作用就是gateway,啥意思? 它是个way 是条路 这条路从哪里来 到哪里去 哈哈 它可以连接两个局域网 甚至于两个完全不同的网络 如果仅有一个局域网 那gateway可以没有: