Linux插座文件描述符通常适合哈希

Are Linux socket file descriptors generally suitable for hashing

本文关键字:常适 哈希 插座 文件 描述 Linux      更新时间:2023-10-16

我正在编程Linux多用户服务器,每个接收的连接返回一个int,其中包含该连接的套接字文件描述符。我也有一个与每个连接相对应的UserConnection对象。我正在使用Hash表(C STL unordered_map<int, UserConnection>)来存储插座文件描述符(键)和UserConnection对象(值)的键值对。

将插座文件描述符作为键放在哈希表中是否安全?Linux的套接字编号分配中是否有任何模式可以与哈希功能效果很好?

打开的手册页(2)解释说,最低未使用的文件描述符被分配给新文件描述符:

成功呼叫返回的文件描述符将是 当前未打开该过程的最低文件描述符。

socket(2)中似乎缺少类似的杂语,但我认为这是一个相当安全的假设 - 同样适用于插座。

随后,创建插座将导致新插座单调增加的文件描述符,这将在第一个机会中重复使用。因此,这是哈希的理想用例。