Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Server
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <pthread.h>
- #define PORT 8080
- void* handle_client(void* arg) {
- int client_sockfd = *(int*)arg;
- free(arg);
- char buff[1024];
- read(client_sockfd, buff, 1024);
- if(strcmp(buff, "cpuinfo") == 0) {
- FILE* fp = fopen("/proc/cpuinfo", "r");
- char cpuinfo[1024];
- fread(cpuinfo, 1, 1024, fp);
- fclose(fp);
- write(client_sockfd, cpuinfo, strlen(cpuinfo)+1);
- } else if(strcmp(buff, "meminfo") == 0) {
- FILE* fp = fopen("/proc/meminfo", "r");
- char meminfo[1024];
- fread(meminfo, 1, 1024, fp);
- fclose(fp);
- write(client_sockfd, meminfo, strlen(meminfo)+1);
- } else if(strcmp(buff, "lspci") == 0) {
- FILE* fp = popen("lspci", "r");
- char lspci[1024];
- fread(lspci, 1, 1024, fp);
- pclose(fp);
- write(client_sockfd, lspci, strlen(lspci)+1);
- }
- close(client_sockfd);
- }
- int main() {
- int server_sockfd, client_sockfd;
- struct sockaddr_in server_addr, client_addr;
- socklen_t addr_size;
- pthread_t tid;
- server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(PORT);
- server_addr.sin_addr.s_addr = INADDR_ANY;
- bind(server_sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr));
- listen(server_sockfd, 5);
- while(1) {
- addr_size = sizeof(client_addr);
- client_sockfd = accept(server_sockfd, (struct sockaddr*)&client_addr, &addr_size);
- int* p_client_sockfd = malloc(sizeof(int));
- *p_client_sockfd = client_sockfd;
- pthread_create(&tid, NULL, handle_client, (void*)p_client_sockfd);
- }
- return 0;
- }
- // Client
- #include <stdio.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <string.h>
- #include <unistd.h>
- #define PORT 8080
- int main() {
- char buff[1024];
- int sockfd;
- struct sockaddr_in server_addr;
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(PORT);
- server_addr.sin_addr.s_addr = INADDR_ANY;
- connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr));
- puts("1. CPU Info");
- puts("2. Memory Info");
- puts("3. PCI Devices");
- printf("Option: ");
- fgets(buff, sizeof(buff), stdin);
- buff[strlen(buff)-1] = '\0';
- if(strcmp(buff,"1") == 0) {
- strcpy(buff,"cpuinfo");
- } else if(strcmp(buff,"2") == 0) {
- strcpy(buff,"meminfo");
- } else if(strcmp(buff,"3") == 0) {
- strcpy(buff,"lspci");
- }
- send(sockfd, buff, strlen(buff), 0);
- recv(sockfd, buff, 1024, 0);
- puts(buff);
- close(sockfd);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement