Ten eerste, waar het programma voor is bedoeld kan ik helaas niet zeggen. Mja, stage...maar verder bedrijf en doeleinde kan ik niet vermelden.
Ik werk met MFC in Visual Studio .NET 2003 en mijn probleem ligt bij CSocket.
De situatie:
Ik heb verschillende applicaties, laten we zeggen een "master server" een vijftal "sub servers".
De "master server" heeft tijdens normale werking vijf sockets (CSocket) open. Elk naar één van de "sub servers".
In het dialoog van de "master server" wordt van elke verbinding de status weergegeven.
Het probleem:
Stel, een van de "sub servers" gaat er onderuit. Dus de verbinding wordt verbroken door een fout of gewoon door eenSocket.Close(). Bij de "master server" wordt dan OnClose() getriggerd (dat deze getriggerd wordt is trouwens getest). In deze functie wil ik de status van de sockets in het dialoog wijzigen.
Maar momenteel krijg ik met OnClose() alleen door dat er een socket gesloten is, niet welke. Hoe kan ik (door pollen misschien) uitzoeken welke van de vijf sockets geen connectie meer heeft. Misschien is de oplossing heel simpel, dat is het uiteindelijk wel vaker.
OnClose is een message handler van het framework. Ik weet niet in hoeverre dit veranderd kan worden.
Kind of pseudocode:
Had wel verwacht wat te vinden op codeproject en koders.com maar dat viel tegen. Hopelijk is hier iemand die mij kan helpen.
Ik werk met MFC in Visual Studio .NET 2003 en mijn probleem ligt bij CSocket.
De situatie:
Ik heb verschillende applicaties, laten we zeggen een "master server" een vijftal "sub servers".
De "master server" heeft tijdens normale werking vijf sockets (CSocket) open. Elk naar één van de "sub servers".
In het dialoog van de "master server" wordt van elke verbinding de status weergegeven.
Het probleem:
Stel, een van de "sub servers" gaat er onderuit. Dus de verbinding wordt verbroken door een fout of gewoon door eenSocket.Close(). Bij de "master server" wordt dan OnClose() getriggerd (dat deze getriggerd wordt is trouwens getest). In deze functie wil ik de status van de sockets in het dialoog wijzigen.
Maar momenteel krijg ik met OnClose() alleen door dat er een socket gesloten is, niet welke. Hoe kan ik (door pollen misschien) uitzoeken welke van de vijf sockets geen connectie meer heeft. Misschien is de oplossing heel simpel, dat is het uiteindelijk wel vaker.
OnClose is een message handler van het framework. Ik weet niet in hoeverre dit veranderd kan worden.
Kind of pseudocode:
C++:
1
2
3
4
5
6
7
| void MasterServer::OnClose() { if( eersteSocket verbroken ) wijzig status in dialoog; if( tweedeSocket verbroken ) wijzig status in dialoog; ... if( vijfdeSocket verbroken ) wijzig status in dialoog; } |
Had wel verwacht wat te vinden op codeproject en koders.com maar dat viel tegen. Hopelijk is hier iemand die mij kan helpen.