Initial commit: add environment monitoring TCP backend

This commit is contained in:
yzfh
2026-10-19 15:52:36 +08:00
commit c892ba07f4
5 changed files with 2952 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include <cstring>
#include <iostream>
int main(int argc, char **argv) {
if (argc < 3) {
std::cout << "Usage: " << argv[0] << " <host> <port>\n";
return 1;
}
const char *host = argv[1];
int port = std::atoi(argv[2]);
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket");
return 1;
}
struct sockaddr_in addr;
std::memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if (inet_pton(AF_INET, host, &addr.sin_addr) <= 0) {
perror("inet_pton");
close(sock);
return 1;
}
if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
perror("connect");
close(sock);
return 1;
}
std::cout << "Connected to " << host << ":" << port << std::endl;
char buf[1024];
while (true) {
ssize_t n = recv(sock, buf, sizeof(buf)-1, 0);
if (n > 0) {
buf[n] = '\0';
std::cout << buf;
std::cout.flush();
} else if (n == 0) {
std::cout << "Server closed connection\n";
break;
} else {
perror("recv");
break;
}
}
close(sock);
return 0;
}