/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_12/client.c
52 строки
2 KB
nikita_shub
Добавление задания 12 сервер-клиент
04 фев 2025, 11:30
04 фев 2025, 11:30
ef5bb30
Код
Авторство
О чём код?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #define PORT 8080 #define SERVER_IP "127.0.0.1" #define MESSAGE "Привет, сервер!" void error_exit(const char *msg) { perror(msg); exit(EXIT_FAILURE); } int main() { int sock_fd; struct sockaddr_in server_addr; // Создание сокета sock_fd = socket(AF_INET, SOCK_STREAM, 0); if (sock_fd == -1) { error_exit("Ошибка создания сокета"); } // Настройка адреса сервера memset(&server_addr, 0, sizeof(server_addr));// заполнение структуры нулями server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); // преобразование адреса сервера из строки в двоичное представление (аналог ф-ии inet_addr): // или заменить на server_addr.sin_addr = inet_addr("127.0.0.1"); if (inet_pton(AF_INET, SERVER_IP, &server_addr.sin_addr) <= 0) { error_exit("Ошибка преобразования IP-адреса"); } // Подключение к серверу if (connect(sock_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { error_exit("Ошибка подключения к серверу"); } printf("Подключено к серверу %s:%d\n", SERVER_IP, PORT); // Отправка сообщения if (send(sock_fd, MESSAGE, strlen(MESSAGE), 0) == -1) { error_exit("Ошибка отправки сообщения"); } printf("Сообщение отправлено: %s\n", MESSAGE); // Закрытие сокета close(sock_fd); return 0; }