Назад к вопросам
Junior — Middle
95
Имели ли вы опыт работы с сетевыми компонентами и протоколами в Linux?
Компании, где спрашивали
Маркет-групп
Ответ от нейросети
sobes.tech AI
Да, опыт работы с сетевыми компонентами и протоколами в Linux включает использование системных вызовов и библиотек для работы с сокетами (socket API).
Основные моменты:
- Создание сокета через
socket(). - Настройка адреса и порта с помощью структур
sockaddr_in. - Привязка сокета к адресу
bind(). - Прослушивание входящих соединений
listen(). - Принятие соединения
accept(). - Отправка и получение данных через
send(),recv().
Пример простого TCP-сервера на C:
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <stdio.h>
int main() {
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_port = htons(8080);
addr.sin_addr.s_addr = INADDR_ANY;
bind(server_fd, (struct sockaddr*)&addr, sizeof(addr));
listen(server_fd, 3);
int client_fd = accept(server_fd, NULL, NULL);
char buffer[1024] = {0};
read(client_fd, buffer, 1024);
printf("Получено: %s\n", buffer);
close(client_fd);
close(server_fd);
return 0;
}
Также знаком с протоколами TCP, UDP, и их особенностями в Linux-среде.