C++ 如何在C++;

C++ 如何在C++;,c++,windows,sockets,waitformultipleobjects,C++,Windows,Sockets,Waitformultipleobjects,我正在尝试编写一个等待客户端连接的代码。一旦连接到客户机,它就应该开始读取并发送文件 我需要有套接字句柄的通知,即如果客户端的连接丢失,它将通知我,以便我可以尝试重新连接。如果连接丢失,则由客户端重新连接。服务器不连接或重新连接到客户端 如果您的服务器只是分发一个文件,那么您所需要做的就是接受连接并将其传递给处理程序,该处理程序将在某个时候调用并清理。我假设等待客户端连接和发送文件的部分只是为了澄清,您已经完成了这项工作。如果没有的话,还有很多教程 在您的情况下,检测客户端是否仍然连接应该很简单

我正在尝试编写一个等待客户端连接的代码。一旦连接到客户机,它就应该开始读取并发送文件


我需要有套接字句柄的通知,即如果客户端的连接丢失,它将通知我,以便我可以尝试重新连接。

如果连接丢失,则由客户端重新连接。服务器不连接或重新连接到客户端


如果您的服务器只是分发一个文件,那么您所需要做的就是接受连接并将其传递给处理程序,该处理程序将在某个时候调用并清理。

我假设等待客户端连接和发送文件的部分只是为了澄清,您已经完成了这项工作。如果没有的话,还有很多教程

在您的情况下,检测客户端是否仍然连接应该很简单。由于您的服务器在建立连接后立即发送文件,因此客户端将在套接字打开后立即开始读取。只要连接打开且未收到任何数据,
读取
-功能块。如果连接关闭,它将返回读取0字节的状态。此时,您知道连接已终止,您可以尝试重新连接


如果您不是永久性地读取套接字,而是将其保持打开状态以备将来通信,则应查看,它允许监视一个或多个套接字,并在其中一个套接字有更新(例如新数据可用或连接已关闭)时立即通知您。

根据您的问题描述,它听起来不像WFMO(或WFSO)这是您应该看到的。arayq2有一点:服务器通常不会管理重新连接逻辑。如果连接断开,服务器只需进行清理。重新连接应该由客户端决定。@CareyGregory我以为他的意思是检测客户端的断开连接。虽然现在我又读了一遍,但我可能错了。当然,服务器管理重新连接是错误的。更不用说在大多数情况下是不可能的。“服务器不连接到客户端”规则的例外是在“活动”模式下打开的FTP数据连接,但这是定义的数据传输协议的一部分,不是任何类型的恢复机制。另一个例子是拨号时代使用回拨列表建立连接的安全服务器。