?
Hallo Community,
ich möchte Sockets in einem Feld speichern um mit mindestens 30 Clients Daten auszutauschen. Die Clients werden sich auf Knopfdruck alle gleichzeitig versuchen zu verbinden. Meine erste Frage, geht das überhaupt ohne weiteres mit der CAsyncSocket-Klasse, da ich gehört habe, daß nur 5 Clients gleichzeitig auf Verbindung warten dürfen. Wenn diese akzeptiert wurden können sich doch hoffentlich die nächsten einreihen, ohne viel Schnickschnack? Noch wichtiger ist aber wie ich die Sockets aus OnAccept abspeichern kann. Die Anwendung ist dialogbasierend wie in den meisten onlinetuts. Die m_...sockets sind private deklariert, das Module struct ist global. Ich versuche das so:
void CMmsDlg::OnAccept(void)
{
struct sockaddr_in client;
socklen_t addrlen = sizeof(client);
m_ListenSocket.Accept(m_ConnectSocket, (struct sockaddr*) &client, &addrlen);
Module[client.sin_addr.S_un.S_un_b.s_b4].s.Attach(m_ConnectSocket.m_hSocket);
}
Allerdings hängt es dann in der sockcore.cpp an folgender Stelle:
ASSERT(CAsyncSocket::LookupHandle(hSocket, bDead) == NULL);
Muss ich Zeiger auf Sockets verwenden und mit FromHandle hantieren? Muss ich irgendwo detachen? Jemand eine Idee? Danke, solarier