|
Шаг 7 - Ожидающий сокет
Выносим предыдущий шаг в отдельную функцию.
.....
void LinkWindowScoket();
.....
После всех настроек есть возможность установить сокет в состояние ожидания. Это делается командой listen. Вот весь код.
void WaitSocket()
{
SocketGetHostName();
CreateSocket();
LinkSoketPort();
LinkWindowScoket();
int Errors;
Errors=listen(servsocket,QUEUE_SIZE);
if ( Errors == SOCKET_ERROR)
{
printf(" Listen BAD !!! \n");
exit(1);
}
else printf("God Listen !!!!!!! \n");
printf("Wait to connected");
CloseScoket();
}
Некоторая специфика приложения Win32 Console на данный момент не даст возможность послушать по человечески. Нам в следующих шагах придется научить получать сообщения от Windows и их обрабатывать. Но при программировании на базе, скажем, MFC этого было бы достаточно, чтобы сразу перейти к обработке сообщений. А пока мы увидим, что всё нормально и программа завершит работу.
Итак функция listen переводит сокет в режим ожидания.
int listen (
SOCKET s,
int backlog
);
Первый параметр это созданный сокет, а второй максимальное количество подключений. Я пока оставил 5 определив константу QUEUE_SIZE
#define QUEUE_SIZE 5
При нормальном завершении функция вернет 0 иначе SOCKET_ERROR, кстати я ни разу вроде не сказал, но расширенный код ошибки можно получить вызвав функцию WSAGetLastError.
Загрузить проект | Предыдущий шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|