如何在列表 C++ 中存储套接字

Posted

技术标签:

【中文标题】如何在列表 C++ 中存储套接字【英文标题】:How to store a socket within a list C++ 【发布时间】:2014-12-14 21:55:29 【问题描述】:

我的目标是创建一个链表,其中每个节点都包含一个套接字连接。我的问题是找到一种可用于存储套接字连接的数据类型。我在 python 中没有这个问题,因为列表可以存储所有数据类型。

在 python 中,我可以简单地执行以下操作:

clientSocket, clientAddress = socket.accept()
LIST[]
LIST.append(clientSocket)

如果我要在 C++ 中创建一个链表,每个节点可能如下所示:

Class Node    
    
public:    
    string username;    
    DATA TYPE socketConn;    

所以我的问题是,为了将socketConn 设置为等于套接字连接,应该使用什么数据类型,如果这种方法不可行,我还能如何以简单的方式实现呢?

对不起,如果我没有完全清楚。

【问题讨论】:

std::list<Node*> 关于你给我们的那段代码应该可以工作。 您的 Python 示例代码甚至不是有效的 Python。 此外,您几乎从不想要使用链表。请改用std::vector。套接字的数据类型是int(使用特殊网络库时除外)。 套接字在 C/C++ 中只是普通的ints。 因此,通过将 DATA TYPE 更改为 int,一切都会好起来的。干杯@AdamRosenfield 为什么链表不是一个好主意?感谢您的输入@dom0 【参考方案1】:

只需使用 ST-Library 中的 std::list(或其他容器,如 std::vector)。例如:

std::vector<Node> / std::list<Node>std::vector<std::unique_ptr<Node>>.

【讨论】:

以上是关于如何在列表 C++ 中存储套接字的主要内容,如果未能解决你的问题,请参考以下文章

在接受连接 C++ 之前获取套接字的 IP 地址

如何序列化apache箭头c ++表,通过套接字传输,并在python端反序列化

如何从 C++ 中的套接字中的线格式反序列化 int

在 C++ 中通过套接字发送图像

如何使用 dlib c++ 库编写基于套接字的应用程序?

C++:如何测量非阻塞套接字的实际上传速率