看一下在c
中创建HTTP网络服务器的教程,其中一个步骤是创建套接字:
...
#include <sys/socket.h>
...
int fd = socket(<domain>, <type>, <protocol>)
然后通过Google环顾四周,我发现了一个SO问题(Is socket descriptor basically a synonym of a file descriptor?),答案是:套接字是UNIX上的文件描述符,但是在Windows中,WINSOCK之间是一层。
无论如何,无论用C语言编写的应用程序中如何使用套接字,在我看来,套接字只是关于如何使用文件的术语。这是正确的吗?
由于不是来自计算机科学背景,因此“文件系统”的隐喻使我无法想象除文件系统中我(用户)可以访问的文件以外的任何内容。
问题 我认为套接字实际上涉及内存中的多个进程可以读取和写入的位置。套接字是文件吗?
第二个问题 从使用“文件”的角度来看,所有内存都被利用了吗?