過去数日間、私は自分が直面している問題の 1 つを解決する方法を考えていました。そのトピックについて調査しようとしましたが、何ができるか本当にわかりません。
同じ構造体に 2 つのソケットがあり、両方とも同じ完了ポートを持っています。問題は、両者が異なるプロトコルを使用していることです。どのソケットがトリガーされたかを確認する方法はありますか? 呼び出された game_socket と client_socket
サンプルコードは次のようになります...
while (true) {
error = GetQueuedCompletionStatus(CompletionPort, &BytesTransfered, (PULONG_PTR)&Key, &lpOverlapped, 0);
srvc = CONTAINING_RECORD ( lpOverlapped, client , ol );
if ( error == TRUE ) {
cout << endl << "SOCKET: [" << srvc->client_socket << "] TRIGGERED - WORKER THREAD" << endl;
cout << endl << "BytesTransfered: [" << BytesTransfered << "]" << endl;
if ( srvc->game_client triggered ) {
// .. this code
} else {
// .. this code
}
アイデアや助けをいただければ幸いです:)