WSAEventSelect
-
Sers,
Also ich schreibe gerade einen Server. Da dieser nur die Konsole als Ausgabe benutzt, habe ich natürlich kein Fenster. Ich habe es über WSAEventSelect realisiert. Ich kann jetzt feststellen, wann ein Client verbinden will. Mein Problem ist jetzt allerdings das, dass ich nicht weiss von welchem Socket aus die Nachricht kommt.
Bei WSAEventSelect bekam man den Socket aus lParam oder wParam.
Wie geht das bei WSAEventSelect?Hier mein Code:
// loop for(;;){ if((rcode = WSAWaitForMultipleEvents(1, (const WSAEVENT FAR *)&event, FALSE, 10000, FALSE)) == WSA_WAIT_FAILED){ cout << "error" << endl; break; } // check if an event exists if( rcode == WSA_WAIT_EVENT_0){ // get event if((WSAEnumNetworkEvents(s, event, &networkEvents))== SOCKET_ERROR) break; // FD_ACCEPT if(networkEvents.lNetworkEvents & FD_ACCEPT){ break; } } }
-
Wenn Du nur einen Event verwendet, wird das wohl net gehen. Du musst schon für jeden Socket einen extra Event verwenden. Dann gibt Dir WaitForMultipleEvents die Nummer zurück.