C 程序-如何检查 Web 服务是否正在运行 [英] C program-How do I check if a web service is running

查看:23
本文介绍了C 程序-如何检查 Web 服务是否正在运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用套接字调用调用 Web 服务.如果服务未运行,我想防止我的客户端应用程序挂起",直到套接字调用超时.如果服务正在运行,应用程序运行良好.即使服务未运行,创建 socked 和连接也会成功.另外,需要包含哪些头文件库?

I am calling a web service using a socket call. I want to prevent my client app from 'hanging' until the socket call times out if the service is not running. The app is working fine if the service is running. The create socked and connect are successful even if the service is not running. ALso, what header library would need to be included?

//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

推荐答案

Web 服务通过 HTTP 工作.您必须在收到任何回复之前发送 HTTP 请求.我建议查看一些像 gsoap 这样的图书馆,而不是尝试通过手.

Web services work over HTTP. You have to send HTTP request before getting any reply. I would suggest looking into some library like gsoap instead of trying to do this by hand.

这篇关于C 程序-如何检查 Web 服务是否正在运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆