在Linux中,检查连接是否打开或关闭的方法取决于您使用的协议和库。以下是一些常见协议和库的示例:
socket
库来检查TCP/IP连接的状态。以下是一个简单的示例:#include<stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
int main() {
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket creation failed");
return 1;
}
struct sockaddr_in serv_addr;
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(8080);
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
int conn_status = connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));
if (conn_status < 0) {
perror("connection failed");
return 1;
}
printf("Connection is open.\n");
close(sockfd);
return 0;
}
在这个示例中,我们尝试连接到本地的8080端口。如果连接成功,则输出“Connection is open”,否则输出“connection failed”。
libcurl
库来检查HTTP连接的状态。以下是一个简单的示例:#include <curl/curl.h>
#include<stdio.h>
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
res = curl_easy_perform(curl);
if (res == CURLE_OK) {
printf("Connection is open.\n");
} else {
printf("Connection is closed.\n");
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
在这个示例中,我们尝试连接到http://example.com
。如果连接成功,则输出“Connection is open”,否则输出“Connection is closed”。
请注意,这些示例仅用于演示目的,实际应用中可能需要更多的错误处理和资源管理。
腾讯技术创作特训营第二季第4期
TVP技术夜未眠
TVP「再定义领导力」技术管理会议
Techo Day
Elastic 中国开发者大会
Elastic 中国开发者大会
serverless days
DB TALK 技术分享会
领取专属 10元无门槛券
手把手带您无忧上云