C程序 - 如何检查Web服务是否正在运行
问题描述:
我正在使用套接字调用调用Web服务。我想阻止我的客户端应用程序“挂起”,直到套接字调用超时(如果服务未运行)。如果服务正在运行,该应用工作正常。即使服务未运行,创建锁定和连接也是成功的。此外,需要包含哪些头文件库?C程序 - 如何检查Web服务是否正在运行
//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
我实际上使用HTTP发送XML数据,但应用程序正在等待“接收”应答,当服务没有运行。我试图防止挂起,但不知道正确的'C'语法来检查服务的状态。 – JustFillingIn 2011-05-23 11:40:38
它没有“C语法”。你能做的最好的是超时。等待'select()'或'poll()'是做这件事的一种方法。 – 2011-05-23 12:53:35