/** * Socket-Client programmieren. * * Schreiben Sie ein Programm, das sich per Socket mit einem * Server unter der IP 127.0.0.1 und auf Port 8080 verbindet. * Der Client schickt einen Namen zum Server und liest dann * die Antwort des Servers und gibt diese auf stdout aus. */ #include #include #include #include #include #include #include #include #define BUFFER_SIZE 1024 #define NAME "Thomas" #define PORT 8080 #define HOST "127.0.0.1" int main(int argc, char** argv) { char buffer[BUFFER_SIZE]; struct sockaddr_in server_addr; // Socket erstellen int socket_fd = socket(AF_INET, SOCK_STREAM, 0); if (socket_fd == -1) { perror("Fehler beim Erstellen des Sockets"); exit(EXIT_FAILURE); } // Serveradresse und Portnummer konfigurieren server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = inet_addr(HOST); // Verbindung zum Server herstellen if (connect(socket_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { perror("Fehler beim Verbinden mit dem Server"); exit(EXIT_FAILURE); } // Namen auf Socket schreiben write(socket_fd, NAME, strlen(NAME) + 1); // Daten vom Socket lesen ssize_t bytes_read = read(socket_fd, buffer, BUFFER_SIZE); if (bytes_read == -1) { perror("Fehler beim Lesen vom Socket"); exit(EXIT_FAILURE); } // Daten auf stdout schreiben write(1, buffer, bytes_read); write(1, "\n", 1); // Socket schließen close(socket_fd); return 0; }