• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試線程池的編碼實現[2]

    發布: 2009-9-15 10:16 | 作者: 不詳 | 來源: 領測軟件測試網 | 查看: 34次 | 進入軟件測試論壇討論

    領測軟件測試網

    軟件測試線程池的編碼實現[2]    軟件測試工具

    關鍵字:數據庫設計  @param  void *——未使用 
                @return  void——無   
        */
        void ProcessRequest(void *)
        {
                SOCKET *pSock;
                while (pSock = MsgQueue_Recv(g_pQue))
                {
                       int  len;
                       char buf[1024];
                       len = recv(*pSock, buf, sizeof(buf)-1, 0);
                       if ( len > 0 )
                       {
                               buf[len] = '\0';
                               if ( strcmp(buf, "Hello!")== 0 )
                               {
                                       strcpy(buf, "Ok");
                                       send(*pSock, buf, strlen(buf), 0);
                               }
                       }
                }
        }

        可以看出,使用了消息隊列后,整個線程池調度非常簡單,由于本書中實現的消息隊列在進行遍歷時不會影響收發,因此可以實時查看有多少客戶在線,使用消息隊列的以下調用函數便可以實現對整個消息隊列的遍歷。

        INT MsgQueue_EnumNext(MSGQUEUE *pQueue, VISITFUNC VisitFunc);

        這里只需要寫一個訪問函數VisitFunc即可,比如要想將當前所有在線的客戶端連接SOCKET ID打印到圖形界面中,可以寫一個簡單的訪問函數來實現,編碼如下。
        INT PrintAllIDToScreen(void *pData)
        {
                SOCKET *pSock = pData;
        WriteToScreen(*pSock);   /* WriteToScreen是將數據寫到圖形界面的函數 */
        }

        再調用“MsgQueue_EnumNext(g_pQue, PrintAllIPToScreen)”語句就可以實現遍歷。

        需要注意的是,上面的編碼只是在消息隊列中放入了一個SOCKET ID,在程序中可以定義一個結構體,結構體中可以包含SOCKET ID、客戶端IP地址、連接建立時間等各種信息,然后將結構體發送到消息隊列即可。這樣遍歷的時候就可以看到客戶端IP地址、連接建立的時間等更多的信息了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 編碼 軟件測試 線程


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>