0
我正在使用套接字調用調用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