- •Крок 1 – Що такеWindows Sockets
- •Крок 2 – Ініціалізація
- •Крок 3 – Отримання імені хоста
- •If (bind(servsocket, (lpsockaddr)
- •Int bind(
- •Int namelen
- •Крок 6 – Зв’язок вікна з сокетом для отримання повідомлень
- •Назву вікна визначимо як
- •Void BindSocket();
- •Int listen (
- •Void StopServer();
- •If (!cDocument::OnNewDocument())
- •Void chttpServerView::OnDraw(cdc* pDc)
- •Void chttpServerView::OnLButtonDown(uint nFlags, cPoint point)
- •Invalidate();
- •Крок 9 – Відсилаємо документ
- •Invalidate();
- •If (wsagetasyncerror(lParam))
- •Void cServerWinsock::SendData(lpctstr buf, int len)
- •If accept() send()
- •Крок 10 – Порядок байтів
- •Коли Ви повинні перетворювати порядок байтів
- •Коли Вам не потрібно перетворювати порядок байтів
- •Функції перетворення порядку байтів у Windows Sockets
- •If (bind(servsocket, (lpsockaddr) &socketaddr, sizeof(socketaddr)))
- •Розрив зв’язку
- •Крок 12 – Робимо файл звіту
- •Void chttpServerView::OnToolsOptions()
- •Void chttpServerView::OnToolsOptions()
- •Void cServerWinsock::LogWrite(cString csStr)
- •If (wsaStartup(winsock_version, &wsaData))
- •Invalidate();
- •Функції адрес
- •Функції розширення Microsoft Winsock
Функції адрес
gethostbyaddr |
отримує інформацію про хост, який пов’язаний з вказаною адресою |
gethostbyname |
отримує інформацію про хост, який пов’язаний з вказаним ім’ям |
gethostname |
вертає стандартне ім’я хоста для локальної машини |
getprotobyname |
отримує інформацію про протокол за його ім’ям |
getprotobynumber |
отримує інформацію про протокол за його номером |
getservbyname |
отримує інформацію про сервіс за вказаним ім’ям та протоколом |
getservbyport |
отримує інформацію про сервіс за вказаним портом та протоколом |
Еквівалент Windows
gethostbyaddr |
WSAAsyncGetHostByAddr |
gethostbyname |
WSAAsyncGetHostByName |
getprotobyname |
WSAAsyncGetProtoByName |
getprotobynumber |
WSAAsyncGetProtoByNumber |
getservbyname |
WSAAsyncGetServByName |
getservbyport |
WSAAsyncGetServByPort |
select |
WSAAsyncSelect |
Функції розширення Microsoft Winsock
WSACancelAsyncRequest |
Відміняє будь які функції WSAAsyncGetXByY |
WSACancelBlockingCall |
відміна виклику API, що блокує. Не повинна використовуватись у програмах Winsock 2 |
WSACleanup |
Припиняє використання Winsock DLL (ws2_32.dll) |
WSAGetLastError |
Отримує інформацію про останню помилку |
WSAIsBlocking |
Визначає, чи буде виклик API блокувати. Не повинна використовуватись у програмах Winsock 2 |
WSASetBlockingHook |
Перехоплює метод, що блокує |
WSASetLastError |
Встановлює код останньої похибки |
WSAStartup |
Ініціалізація Winsock DLL |
WSAUnhookBlockingHook |
Встановлює оригінальну функцію, що блокує |