完了ポートを使用して複数の異なるポートのsocketをリスニングする方法
1128 ワード
, event , send,recv
1. ,
2. , ,
CreateIoCompletionPort関連付け
3.関连した后に直ちに1つのrecvを送ってデータを受信することができます4.いったんrecvがデータに着いたら、IOCPの仕事のスレッドに入って、あなたの具体的な需要によってコードしてあなたはhttp://bbs.csdn.net/topics/320108045ここを見てみると、中にはたくさんの達人が詳しい手順を持っています.
http://bbs.csdn.net/topics/320108045
ポートの完成は確かに難しいので、簡単なアプリケーションを作るのは問題ないかもしれませんが、大規模な複雑なアプリケーションになると問題ありません.多くの問題があることに気づきます複数の異なるポートの傍受と1つのポートの傍受の基本手順は同じで、1つの循環BOOLにほかならない. ListMultipleSocket(int &SocketPort) { // init WSAStartup(..); // create port CreateIoCompletionPort(..); // create worker threads for(int i = 0; i { CreateThread(ServerWorkerThread, CompletionPort, 0, NULL); } // create socket SOCKET serverSock = socket(...); // bind socket serverSock.sin_port = htons(ServerPort); // set to your port bind(serverSock,...); // listen it listen(serverSock, 5); // dispatch recv while(TRUE) { ... WSAAccept(...); ... CreateIoCompletionPort(...); ... WSARecv(...); } }