Sobes.tech
Назад к вопросам
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-среде.