如何重启套接字程序?

时间:2009-03-07 02:07:25

标签: c++ sockets

我需要我的服务器保持与服务器的连接。有谁知道如何做到这一点?或发布链接教程什么?

它还说当它重新启动'无法接受客户'时,我该如何清除所有内容并让它接受呢?

1 个答案:

答案 0 :(得分:5)

服务器代码:

对于服务器端代码,请执行包含accept调用的循环。对于创建的已接受套接字,创建一个新线程,以便立即调用下一个accept。

在服务器启动时,您可能还想使用SO_REUSEADDR标志。这样,如果您遇到崩溃,甚至快速重启程序,那么您的服务器将能够再次使用相同的端口而不会出现问题。

客户代码:

对于您的客户端代码,您只需检查套接字错误,如果发生这种情况,只需建立新连接。

其他资源:

其他选项:

您可以尝试使用boost asio来简化套接字编程,而不是普通的bsd样式套接字。你可以查看他们的examples page