什么是文件描述符/ connection / socket / ip?

时间:2013-11-22 23:05:46

标签: tcp ip file-descriptor

这是一个广泛的问题:

文件描述符,连接,套接字,ip如何相互关联?

文件描述符只是一个文本文件吗?所以当我连接到服务器时,它是否意味着服务器和我的计算机基本上创建了一个文件描述符,我们通过写入文件进行通信?

为什么服务器有文件描述符限制?当服务器打开太多连接时,它可能会失败并显示错误:打开的文件太多。是因为每次连接服务器都会打开一个新的文本文件吗?

1 个答案:

答案 0 :(得分:10)

IP地址是标识网络中计算机的“数字”。因此,您可以说“将此数据发送到IP x.x.x.x”,网络知道哪一个是目标计算机。有几种方法可以为机器分配IP地址。

连接是两台机器之间的概念链接。这是概念性的,因为机器不必直接连接到彼此或任何东西:它们是“通过网络”链接的。

套接字是一种编程接口,允许程序员管理连接,因此程序员可以:

  • 建立(打开)与另一台计算机的新连接
  • 侦听来自其他计算机的传入连接
  • 读取通过connectino收到的数据
  • 通过连接写入数据
  • 放弃(关闭)连接

文件描述符是一个元素(通常是一个数字),它允许程序员识别数据的“流”:磁盘上的文件,套接字,管道,命名管道......基本上你可以读取/写入字节的任何东西顺序的方式。它们被称为文件描述符,因为它们最初只识别文件。