簡體   English   中英

Linux套接字文件描述符通常適合散列嗎

[英]Are Linux socket file descriptors generally suitable for hashing

我正在編程Linux多用戶服務器,並且接受的每個連接都返回一個包含該連接的套接字文件描述符的int 我還有一個與每個連接相對應的UserConnection對象。 我正在使用哈希表(C ++ STL unordered_map<int, UserConnection> )來存儲套接字文件描述符(鍵)和UserConnection對象(值)的鍵值對。

將套接字文件描述符作為鍵放在哈希表中是否安全? Linux的套接字號分配中是否有任何模式可能無法與哈希函數很好地配合?

open(2)手冊頁明確指出,將最低的未使用文件描述符分配給新文件描述符:

成功調用返回的文件描述符將是當前未為該進程打開的編號最小的文件描述符。

socket(2)似乎缺少類似的術語,但是我認為這是一個相當安全的假設-套接字也是如此。

隨之而來的是,對於新的套接字,創建套接字將導致單調增加的文件描述符,並將在第一次機會中對其進行重用。 因此,這是散列的理想用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM