【问题标题】:How to check if a server is up in c?如何检查服务器是否在c中启动?
【发布时间】:2013-11-25 06:39:44
【问题描述】:

我有 3 个程序正在运行。一个客户端,一个主服务器和一个备份服务器。我想以某种方式确定主服务器是否已启动(是否崩溃),如果没有,我可以将消息发送到备份。我试过 if(send(....) >= 0){....} 显然没有用,还有其他想法吗?

【问题讨论】:

  • "如何检查服务器是否在 C 中启动?" - 你看看它的以太网电缆和 C 是否已插入。
  • 做个聪明人的方法
  • 评论实际上是正确的-只是因为您没有指定任何相关数据,这是唯一的解决方案。什么协议?服务器期望什么请求以及它将如何回复?一旦你知道了这一切——问题就会自行消失。
  • 让服务器响应某个消息,如果没有响应,它就宕机了,看不到你的问题。
  • 可以ping通ip地址

标签: c sockets client-server


【解决方案1】:

从您的客户端,您需要不断尝试从服务器读取数据。 像这样的东西: 如果您使用的是基于 Linux 的服务器/客户端。

while ( (n = read(socket_fd, recvBuffer, sizeof(recvBuffer)-1)) > 0)
{
    recvBuffer[n] = 0;
    if(fputs(recvBuffer, stdout) == EOF)
    {
        printf("\n Error :  error in Fputs\n");
    }
} 

您可以使用 connect 并传递服务器地址来创建此 socket_fd。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2017-03-16
    相关资源
    最近更新 更多