Code:
while(1)
{
char buf[256];
long rc;
FD_ZERO(&fdSet);
FD_SET(aSocket, &fdSet);
FOR_EACH(m_clients, i)
{
FD_SET(m_clients[i], &fdSet);
FD_SET(m_servers[i], &fdSet);
}
select(0, &fdSet, NULL, NULL, NULL);
if(FD_ISSET(aSocket, &fdSet))
{
AddSocket(accept(aSocket, NULL, NULL));
}
FOR_EACH(m_clients, i)
{
if(FD_ISSET(m_clients[i], &fdSet))
{
[COLOR="Red"] rc = recv(m_clients[i], buf, 256, 0);
if(rc == 0 || rc == SOCKET_ERROR)
{
Close(i);
}
else
{
send(m_servers[i], buf, rc, 0);
}[/COLOR]
}
if(FD_ISSET(m_servers[i], &fdSet))
{
[COLOR="Red"] rc = recv(m_servers[i], buf, 256, 0);
if(rc == 0 || rc == SOCKET_ERROR)
{
Close(i);
}
else
{
send(m_clients[i], buf, rc, 0);
}[/COLOR]
}
}
}
The red highlighted Code is never executed. So the if statement returns always false, but why?