如何在列表 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++ 中只是普通的int
s。
因此,通过将 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++ 中存储套接字的主要内容,如果未能解决你的问题,请参考以下文章