Как сделать "избирательный" TCP/IP сокет?
От: SergeyAksuchenko Беларусь  
Дата: 03.07.03 19:20
Оценка: 2 (1)
Можно ли как-то до вызова Accept определить IP желающего подключиться и
сразу же отказать в подключении(и как?)?
Или вообще что бы сервер ничего не отвечал. Это вообще возможно?
Или остаётя только вариант Accept, а потом Close?
Posted via RSDN NNTP Server 1.6
Re: Как сделать "избирательный" TCP/IP сокет?
От: NeuroVirus Россия  
Дата: 04.07.03 06:16
Оценка: 45 (3)
Здравствуйте, SergeyAksuchenko, Вы писали:

SA>Можно ли как-то до вызова Accept определить IP желающего подключиться и

SA>сразу же отказать в подключении(и как?)?
SA>Или вообще что бы сервер ничего не отвечал. Это вообще возможно?
SA>Или остаётя только вариант Accept, а потом Close?

Можно-можно! Использовать WinSock 2.0
Обратить внимание на lpfnCondition

SOCKET WSAAccept(
SOCKET s,
struct sockaddr FAR *addr,
LPINT addrlen,
LPCONDITIONPROC lpfnCondition,
DWORD dwCallbackData
);

Parameters
s
[in] Descriptor identifying a socket that is listening for connections after a call to the listen function.
addr
[out] Optional pointer to a buffer that receives the address of the connecting entity, as known to the communications layer. The exact format of the addr parameter is determined by the address family established when the socket was created.
addrlen
[in, out] Optional pointer to an integer that contains the length of the address addr.
lpfnCondition
[in] Procedure instance address of the optional, application-supplied condition function that will make an accept/reject decision based on the caller information passed in as parameters.
dwCallbackData
[in] Callback data passed back to the application as the value of the dwCallbackData parameter of the condition function. This parameter is not interpreted by Windows Sockets.
Re[2]: Как сделать "избирательный" TCP/IP сокет?
От: SergeyAksuchenko Беларусь  
Дата: 04.07.03 18:58
Оценка:
Хм... А без винсок никак?
Например если под линукс...
Posted via RSDN NNTP Server 1.6
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.