5 Інтерфейс windows sockets

Бібліотека DLL. забезпечує інтерфейсe Windows Sockets, що не соответствуетверсіі, зазначеної додатком зазначеної в параметрі wVersionRequested

Нижче ми представили фрагмент вихідного тексту програми SERVER, яке буде описано нижче, виконує ініціалізацію інтерфейсу Windows Sockets:

В операційних системах Microsoft Windows 95 і Microsoft Windows NT версії 3.51 вбудована система Windows Sockets версії 1.1, тому саме це значення ми вказали при виконанні функції WSAStartup.

У наступних декількох рядках щойно наведеного фрагменту коду вміст двох полів структури типу WSADATA відображається у вікні органу управління Statusbar.

Визначення структури WSADATA і покажчика на неї виглядають наступним чином:

Використані вище поля szDescription і szSystemStatus після виклику функції WSAStartup містять, відповідно, опис конкретної реалізації інтерфейсу Windows Socket і поточний стан цього інтерфейсу у вигляді текстових рядків.

У полях wVersion і wHighVersion записані, відповідно, версія специфікації Windows Socket. яку буде використовувати додаток, і версія специфікації, якій відповідає конкретна реалізація інтерфейсу Windows Socket.

Додаток може одночасно створювати кілька гнізд, наприклад, для використання в різних підзадач одного процесу. В поле iMaxSockets зберігається максимальна кількість гнізд, яке можна отримати для одного процесу.

В поле iMaxUdpDg записаний максимальний розмір пакета даних, який можна переслати з використанням датаграммной протоколу UDP.

І, нарешті, поле lpVendorInfo містить покажчик на додаткову інформацію, формат якої залежить від фірми-виробника конкретної реалізації системи Windows Sockets.

Перед тим, як завершити свою роботу, додаток повинен звільнити ресурси, отримані у операційної системи для роботи з Windows Sockets. Для виконання цього завдання додаток повинен викликати функцію WSACleanup. певну так, як це показано нижче:

Ця функція може повернути нульове значення при успіху або значення SOCKET_ERROR в разі помилки.

Для отримання коду помилки ви повинні скористатися функцією з ім'ям WSAGetLastError.

Функція WSAGetLastError дозволяє визначити код помилки при невдалому завершенні практично всіх функцій інтерфейсу Windows Sockets. Ви повинні викликати її відразу слідом за функцією, яка завершилася невдало.

Якщо помилка виникла при виконанні функції WSACleanup. функція WSAGetLastError може повернути одне з наступних значень:

Схожі статті