асист
Криворізький технічний університет, Україна
Базові поняття про сокети
Windows
Данна
стаття розглядає|розглядує| ряд питань, пов'язаних з поняттям сокет, його призначенням,
використанням у Windows ,
перевагами Winsock , а також
піднімає питання функцій API
Winsock .
Загальні
В процесі мережевого
(socket ) представляє
собою
абстрактну точку мережевого
з'єднання , [2] а
якщо говорити більш конкретніше, то сокет, є кінцевою
точкою мережевих
комунікацій. Кожен сокет, що використовується, має тип|типа| і асоційований з ним процес. Сокети існують у середині комунікаційних доменів.
Домени це абстракції, які мають конкретну структуру адресації і безліч
протоколів, які визначають різні типи
сокетів у середині
домена. Прикладами
комунікаційних доменів можуть бути: UNIX домен, Internet
домен, і т.д.
У
Internet|. Два сокети, один для хоста|-одержувача, інший для хоста|-відправника, визначають з'єднання для протоколів,
орієнтованих на встановлення зв'язку, таких, як TCP . [3]
Сокети Windows
Можливість взаємодії з іншими системами забезпечується в Windows підтримкою сокетів Windows Sockets – сумісного і майже точного аналога сокетів Берклі
(Berkeley Sockets ), що де-факто грають роль
промислового стандарту.
Оскільки інтерфейс
Winsock промисловому стандарту,
прийняті у ньому угоди про правила привласнення імен
і стилі програмування дещо відрізняються від тих, з якими ми звикли стикатися в процесі роботи
з функціями Windows . Слід зазначити , що Winsock| API
не є частиною Win32/64. Крім того, Winsock надає додаткові функції що не
відповідають стандартам; ці функції використовуються лише у разі крайньої необхідності. [1]
У UNIX
До переваг Winsock
·
Перенесення
Berkeley Sockets API , здійснюється безпосередньо.
·
Системи Windows легко вбудовуються в мережі , що використовують, як версію
Ipv4 протоколу TCP/IP, так і
версію IPv6 , що поступово
розповсюджується .
·
Сокети можуть використовуватися спільно з
·
Сокети можна розглядати,|типа| HANDLE )
файлів при використанні функцій ReadFile і WriteFile , та з деякими обмеженнями, при
використанні інших функцій. Ця можливість виявляється
зручною в тих випадках, коли потрібне використання асинхронного введення/виведення і портів завершення
введення/виведення .
·
Існують також додаткові, непереносимі
Функції сокетів
API
·
функції сокетів в стилі Берклі, включені в Winsock
·
функції для роботи з
·
функції, що розподіляють набір функцій інтерфейсу сокетів
Берклі.
Крім того, всі
функції можна розділити на дві великі групи: блокуючі і не блокуючі.
Блокуюча функція
примушує
аccept – підтверджує запит на встановлення
з'єднання. Утворює новий сокет і сполучає його з видаленим комп'ютером, що
запрошує з'єднання. Початковий сокет повертається в стан прийому вхідних
запитів.
closesocket – закриває одну
сторону в з'єднанні сокетів;
connect – встановлює з'єднання на
вказаному сокеті;
recv – приймає дані із сполученого
сокета;
send – передає дані через сполучений
сокет;
sendto – передає дані через сполучений
або не сполучений сокет; [2]
Не блокуюча функція
не примушує
bind – привласнює ім'я неініціалізованому
сокету;
getsockname – повертає ім'я
вказаного локального сокета;
getsockopt – повертає опції вказаного
сокета;
htonl –
перетворює порядок байтів в 32-розрядному числі з машинно-незалежного в
мережевий;
htons – перетворює порядок байтів в
16-розрядному числі з машинно-незалежного в мережевий;
inet_addr – перетворює рядок з IP-адресою у
форматі десяткового з крапкою в 32-розрядне число в мережевому форматі;
inet_ntoa – перетворює IP-адрес у формат
десяткового з крапкою;
listen – встановлює вказаний сокет в
стан прослуховування запитів на вхідне з'єднання. Сама функція не проводить
мережевих операцій введення/виведення;
ntohl – перетворює порядок байтів
32-розрядного числа з мережевого в машинно-залежний;
setsockopt – встановлює опції сокета;
shutdown – закриває одну сторону
видаленого з'єднання;
socket – утворює точку мережевого
з'єднання і повертає дескриптор сокета. [2]
Висновоки
У даній
статті були розглянуті
Література
1.
Джонсон М. Харт. Системное программирование в среде
Windows, 3-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 592с.:
ил. – Парал. тит. англ.
2.
Интерфейс сокетов Windows http://home.tula.net
3.
Программирование сокетов http://www.codenet.ru