【问题标题】:Maximum socket descriptor value最大套接字描述符值
【发布时间】:2012-10-29 20:42:17
【问题描述】:

套接字描述符的最大值是多少,我在 Linux 和 Windows 上使用函数 socket()accept() 得到?

【问题讨论】:

  • 你问这些方法/函数调用返回的最大值是多少?我很想知道您打算如何使用这些信息?
  • 我也想知道这一点,所以我可以弄清楚使用 SOCKET 句柄(或 SOCKET 句柄除以 X=4, 8) 作为数组索引。阵列需要多大?

标签: linux windows sockets file-descriptor


【解决方案1】:

最大值通常与该进程同时打开的文件描述符的数量相同。

但是,AFAIK 没有在任何标准中以这种方式定义。

套接字描述符是int,因此理论值为INT_MAX,但这会使select之类的调用有点难以实现,因此它们只是按顺序分配的.

【讨论】:

    【解决方案2】:

    在 Windows 中,套接字不像在 Linux 中那样是“小整数”,它们是不透明的“句柄”。

    因此知道某种最大值的价值就更小了,例如,它可能与平台上的最大指针相同。

    更多信息请参见this documentation page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 2014-04-25
      • 2011-03-31
      相关资源
      最近更新 更多