Tenho este select aguardando dados no buffer do socket. Quando há dados no buffer, lanço uma thread e aceito a conexão.
while (!InterruptWaitForConnections)
{
const int status = select(ListenSocket+1, &readfds, writefds, exceptfds, timeout);
if (status == -1)
{
// ERROR: do something
return false;
}
else if (status > 0)
{
// - The socket buffer has data
// - Check if it is a valid connection
// - Reject or accept
return true;
}
else if(status == 0)
{
//timeout
}
}
Gostaria de filtrar as conexões antes de aceitá-las. Quero aceitar apenas conexões vindas do meu cliente.
Se uma conexão vier de outro lugar ou houver lixo no buffer do soquete, eu simplesmente quero limpar o buffer do soquete.
Meu cliente pode estar em IPs diferentes. Então, preciso descobrir uma maneira de reconhecê-lo.
Alguém sabe como posso fazer isso?