Створення необробленого сокета Щоб створити сокет типу SOCK_RAW, викличте функцію сокета або WSASocket із параметром af (сімейство адрес), установленим на AF_INET або AF_INET6, параметром типу — SOCK_RAW, а параметром протоколу — потрібним номером протоколу. 19 січня 2022 р
Щоб створити необроблений сокет, ви повинні скористайтеся функцією socket і встановіть для поля типу SOCK_RAW. Для поля протоколу можна встановити будь-яке значення вище рівня IP, наприклад IPPROTO_ICMP і IPPROTO_IGMP. Недозволені протоколи IPPROTO_UDP і IPPROTO_TCP.
Як показано на малюнку, кроки для встановлення TCP-сокета на стороні клієнта такі:
- Створіть сокет за допомогою функції socket();
- Підключіть сокет до адреси сервера за допомогою функції connect();
- Надсилати й отримувати дані за допомогою функцій read() і write().
Адреси сокетів визначаються вказуючи сімейство адрес і адресу сокета в Інтернеті. У VSE TCP/IP адреса визначається IP-адресою та номером порту сокета.
Отже, щоб увімкнути неблокуючий режим, потрібно виконати три дії:
- Викличте API fcntl(), щоб отримати поточні налаштування прапора дескриптора сокета в локальну змінну.
- У нашій локальній змінній встановіть прапорець O_NONBLOCK (неблокування). …
- Викличте API fcntl(), щоб встановити прапорці для дескриптора на значення в нашій локальній змінній.
Що таке програмування сокетів? Програмування сокетів є спосіб з’єднання двох вузлів у мережі для спілкування один з одним. Один сокет (вузол) прослуховує певний порт на IP-адресі, тоді як інший сокет зв’язується з іншим для створення з’єднання.
Необроблений сокет є тип сокета, який дозволяє отримати доступ до основного транспортного провайдера. Ця тема присвячена лише необробленим сокетам і протоколам IPv4 і IPv6. Це тому, що більшість інших протоколів, за винятком ATM, не підтримують необроблені сокети.