Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查用户是否已连接?_C++_Sockets_Ubuntu 17.10 - Fatal编程技术网

C++ 检查用户是否已连接?

C++ 检查用户是否已连接?,c++,sockets,ubuntu-17.10,C++,Sockets,Ubuntu 17.10,事情是这样的: 服务器正在运行,客户端立即连接。 客户然后给出他的身份证 当验证服务器向连接发送绿色信号以发送信息时,服务器将验证该信息 现在在这个验证中,我想检查一个特定的客户端ID是否已经有一个经过验证的连接 在同一时刻,对于特定的客户端ID,我只需要一个连接 我正在用套接字编程(学习),但我不知道如何解决这个问题 我使用C++(Ubuntu)保存所有连接客户端的列表(可能是String >客户端的全局映射)。是的,我确实想到过。但问题是,当突然出现意外断开连接时,如何从列表中删除已连接的客

事情是这样的: 服务器正在运行,客户端立即连接。 客户然后给出他的身份证 当验证服务器向连接发送绿色信号以发送信息时,服务器将验证该信息

现在在这个验证中,我想检查一个特定的客户端ID是否已经有一个经过验证的连接

在同一时刻,对于特定的客户端ID,我只需要一个连接 我正在用套接字编程(学习),但我不知道如何解决这个问题


我使用C++(Ubuntu)

保存所有连接客户端的列表(可能是String >客户端的全局映射)。是的,我确实想到过。但问题是,当突然出现意外断开连接时,如何从列表中删除已连接的客户端。服务器将收到断开连接的客户端(假设这是TCP)的通知,所有这些客户端都有从中删除元素的方法。您收到断开连接的通知并不完全正确。如果没有适当的断开握手连接就失败了,并且没有可能失败的有效信息或常规消息,那么在死亡被发现之前可能需要很长很长时间。