完了ポートを使用して複数の異なるポートの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(...);    } }