ВУЗ:
Составители:
Рубрика:
53
}
// определение размера сокета
acc_sin_len = sizeof(acc_sin);
// разрешение установки соединения
srv_socket = accept(srv_socket, (LPSOCKADDR) & acc_sin,
(int FAR *) & acc_sin_len);
if (srv_socket == INVALID_SOCKET)
{
MessageBox(NULL,
"Ошибка функции Accept, недопустимый сокет",
"Error", MB_OK);
return;
}
// если на данном сокете начнется передача данных от
// клиента, в главное окно приложения поступит
// сообщение WSA_NETEVENT.
// Это же сообщение поступит при разрыве соединения
rc = WSAAsyncSelect(srv_socket, hWnd, WSA_NETEVENT,
FD_READ | FD_CLOSE);
if (rc > 0)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции WSAAsyncSelect",
"Error", MB_OK);
return;
}
} // конец функции WndProc_OnWSAAccept
В данном случае
обработчик сообщения вначале вызывает функцию
accept
,
выполняющую создание канала передачи данных. После этого функция
WSAAsyncSelect
вызывается повторно для того, чтобы установить асинхрон-
ную обработку приема данных от удаленного клиента, а также обработку си-
туации разрыва канала связи.
6.6.2 Сторона клиента
}
// определение размера сокета
acc_sin_len = sizeof(acc_sin);
// разрешение установки соединения
srv_socket = accept(srv_socket, (LPSOCKADDR) & acc_sin,
(int FAR *) & acc_sin_len);
if (srv_socket == INVALID_SOCKET)
{
MessageBox(NULL,
"Ошибка функции Accept, недопустимый сокет",
"Error", MB_OK);
return;
}
// если на данном сокете начнется передача данных от
// клиента, в главное окно приложения поступит
// сообщение WSA_NETEVENT.
// Это же сообщение поступит при разрыве соединения
rc = WSAAsyncSelect(srv_socket, hWnd, WSA_NETEVENT,
FD_READ | FD_CLOSE);
if (rc > 0)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции WSAAsyncSelect",
"Error", MB_OK);
return;
}
} // конец функции WndProc_OnWSAAccept
В данном случае обработчик сообщения вначале вызывает функцию accept,
выполняющую создание канала передачи данных. После этого функция
WSAAsyncSelect вызывается повторно для того, чтобы установить асинхрон-
ную обработку приема данных от удаленного клиента, а также обработку си-
туации разрыва канала связи.
6.6.2 Сторона клиента
53
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »
