C程序 - 如何检查Web服务是否正在运行

时间:2011-05-20 20:44:03

标签: c web-services sockets

我使用套接字调用来调用Web服务。我想阻止我的客户端应用程序“挂起”,直到套接字调用超时(如果服务未运行)。如果服务正在运行,该应用程序正常工作。即使服务未运行,create socked和connect也会成功。那么,需要包含哪个头库?

//Create the Socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd < 0)
{
    printf("errno %d: %s\n",errno,strerror(errno));
    set_output_data(in_out_address->error,
                    "E991",
                    ERROR_SIZE);
    return;
};
printf("errno %d: %s\n",errno,strerror(errno));
printf("sockfd %d: %s\n",sockfd,"socket call");

//Connect
errno=0;
connresult = connect(sockfd,(struct sockaddr *)&server_addr,
                                      sizeof(server_addr));
if (connresult < 0)
{
    printf("errno %d: %s\n",errno,strerror(errno));
    set_output_data(in_out_address->error,
                    "E992",
                    ERROR_SIZE);
    return;
}
printf("errno %d: %s\n",errno,strerror(errno));
printf("connresult %d: %s\n",connresult,"connection call");

// check if service is running before we send data

1 个答案:

答案 0 :(得分:0)

Web服务通过HTTP工作。在获得任何回复之前,您必须发送HTTP请求。我建议调查一些像gsoap这样的库,而不是试图手工完成。