Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
deimos
Зарегистрирован: 15.11.2001 Сообщения: 61 Откуда: Харьков
|
Добавлено: Вт Янв 22 2002 11:41 Заголовок сообщения: Работа с портами (CSocket) |
|
|
можно ли установить при запросе на подключение к сокету (CSocket::OnAcept) кто хочет подключиться (IP-адрес). А то мне нужно фильтровать юзеров, а функции класса CSocket позволяют это выяснить только на этапе запроса на получение данных., а мне нужно раньше. |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Сб Янв 26 2002 00:43 Заголовок сообщения: Re: Работа с портами (CSocket) |
|
|
А переопределить сам Accept не пробовал ? Там есть необходимая информация |
|
Вернуться к началу |
|
|
deimos
Зарегистрирован: 15.11.2001 Сообщения: 61 Откуда: Харьков
|
Добавлено: Пн Янв 28 2002 10:17 Заголовок сообщения: Re: Работа с портами (CSocket) |
|
|
А как же ты без переопределения OnAccept установишь соединение???? Есс-но нужно его переопределять... а параметр там - всего один - void CListenSocket::OnAccept(int nErrorCode) Я использую ф-ю GetPeerName(), а она возвращает корректные данные ио удаленном хосте только при запросе на получение данных, а при запросе на установление соединения она ничего не выдает. |
|
Вернуться к началу |
|
|
deimos
Зарегистрирован: 15.11.2001 Сообщения: 61 Откуда: Харьков
|
Добавлено: Пн Янв 28 2002 10:18 Заголовок сообщения: Re: Работа с портами (CSocket) |
|
|
А как же ты без переопределения OnAccept установишь соединение???? Есс-но нужно его переопределять... а параметр там - всего один - void CListenSocket::OnAccept(int nErrorCode) Я использую ф-ю GetPeerName(), а она возвращает корректные данные ио удаленном хосте только при запросе на получение данных, а при запросе на установление соединения она ничего не выдает. |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Пн Янв 28 2002 16:48 Заголовок сообщения: Re: Работа с портами (CSocket) |
|
|
OnAccept это обработчик сообщения. Перед тем как до него дойдет дело сработает CAsycSocket::Accept(CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );
rConnectedSocket - reference на твой рабочий socket, который и будет работать с клиентом.
А вот lpSockAddr - данные удаленного socket-а, который сделал connect. |
|
Вернуться к началу |
|
|
|