青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 60, 文章 - 0, 評論 - 197, 引用 - 0
數據加載中……

Win32 RPC 編程(三)

我們在上一節的基礎上,討論如何實現異步的 RPC 調用。前兩節演示的函數調用都是同步的,即調用函數 Hello() 時,
客戶端將阻塞住直到服務端的 Hello() 函數返回。如果服務端函數需要進行一些費時的操作,例如復雜的計算、查詢,
客戶端只能一直阻塞在那里。這種情況下,我們可以使用異步的 RPC 提高客戶端的性能。

異步的RPC是通過配置文件(.acf)來啟用的:
--------------------------------------------
Hello.acf:

[  
       implicit_handle(handle_t HelloWorld_Binding)  
]  

interface  HelloWorld
{
       [async] Hello();  // 增加了 [async] 表明這是異步調用
}

 
原來的接口 HelloWorld 有兩個方法,Hello() 和 Shutdown(),Shutdown() 我們仍然讓它是同步調用,所以在.acf文
件中不用列出。IDL 接口文件還是可以不用修改。


服務端的代碼 server.c 中的 Hello() 要改成下面的樣子:
------------------------------------------------------
void Hello(PRPC_ASYNC_STATE rpcAsyncHandle, const unsigned char * psz)
{
     // 模擬一個長時間的操作
     printf("Sleep 5 seconds...\n");
     Sleep(5000);
 

     printf("%s\n", psz);
     // 表明調用已經完成

     RpcAsyncCompleteCall(rpcAsyncHandle, NULL);
}

服務端的其它代碼不用修改。
 

客戶端client.c中的調用方式也要換:
---------------------------------
int main(int argc, char * argv[])
{
     // 前面都相同
     ...
   
     // 下面是調用服務端的函數
     RpcTryExcept
     {

         if ( _stricmp(argv[1], "SHUTDOWN") == 0 )
         {
              Shutdown();
         }
         else
         {
              // 初始化異步調用
              RPC_ASYNC_STATE async;
              RpcAsyncInitializeHandle( &async, sizeof(async) );
              async.UserInfo = NULL;
              async.NotificationType = RpcNotificationTypeNone;

              // 本函數能立即返回
              Hello( &async, (unsigned char*)argv[1]);

              // 查詢調用的狀態
              while ( RpcAsyncGetCallStatus(&async) == RPC_S_ASYNC_CALL_PENDING )
              {
                   printf("Call Hello() pending, wait 1s...\n");
                   Sleep(1000);
              }

              // 通知調用已經完成
              RpcAsyncCompleteCall( &async, NULL );
         }
     }
     RpcExcept(1)
     {
         printf( "RPC Exception %d\n", RpcExceptionCode() );
     }
     RpcEndExcept

   
     // 后面都相同
     ...
}

這樣客戶端就實現了異步調用!

示例下載
 

posted on 2008-04-29 11:22 Normandy 閱讀(2804) 評論(1)  編輯 收藏 引用 所屬分類: Networking

評論

# re: Win32 RPC 編程(三)  回復  更多評論   

我最近正在Windows下開發RPC服務器與客戶端程序,現在只是前期熟悉試驗階段,網上的hello world程序已經可以正常運行了,但是我現在想在服務器端返回二進制流,IDL中定義的接口如下:

char* helloworld([in,string]const char* psz)

在服務器端實現代碼如下:
unsigned char* helloworld(const unsigned char* psz)
{
unsigned char* pTest = new unsigned char[4] ;
int nTest = 100 ;
memcpy(pTtest,&nTest,4) ;

return pTtest ;
}

客戶端調用方式
unsigned char* pTest = helloworld((unsigned char*)"Hello Server!");
int nTest ;
memcpy(&nTest ,pTest,4) ;

nTest得到的很大的一個數,pTest的內容也不對,請問大家應該怎樣定義接口文件,怎樣才能得到正確的返回值呢?謝謝了
2013-09-04 19:43 | forest21000
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲免费一在线| 国产欧美日韩在线视频| 亚洲精选在线| 91久久夜色精品国产九色| 免费人成精品欧美精品| 免费成人在线观看视频| 亚洲国产成人久久综合| 亚洲精品字幕| 亚洲淫片在线视频| 亚洲欧美综合另类中字| 久久精品亚洲国产奇米99| 欧美一站二站| 欧美va亚洲va国产综合| 亚洲电影av| 9色精品在线| 欧美一区二区三区在线免费观看 | 午夜久久久久久久久久一区二区| 性欧美1819性猛交| 欧美69视频| 一区二区三区四区蜜桃| 性色av一区二区三区在线观看 | 国产精品视频一区二区三区| 国产一区二区三区在线观看网站| 亚洲国产黄色片| 午夜国产欧美理论在线播放| 久久这里只有| 日韩午夜视频在线观看| 久久精品国产免费观看| 欧美日韩中文字幕日韩欧美| 精品999在线观看| 亚洲午夜小视频| 欧美不卡福利| 欧美一区二区三区视频在线| 欧美日本二区| 亚洲国产高清在线观看视频| 欧美怡红院视频| 亚洲精品乱码| 久久伊人一区二区| 国产精品综合久久久| 日韩亚洲一区二区| 欧美+日本+国产+在线a∨观看| 制服丝袜激情欧洲亚洲| 美日韩精品免费观看视频| 国产情人节一区| 亚洲欧美日韩天堂一区二区| 亚洲精品少妇网址| 欧美国产先锋| 亚洲国产精品成人一区二区| 久久精品系列| 欧美亚洲视频在线观看| 国产精品久久久久久久久久直播| 一本综合久久| 亚洲三级观看| 欧美日本二区| 亚洲精品男同| 亚洲黄色高清| 欧美肥婆在线| 日韩亚洲不卡在线| 最新国产乱人伦偷精品免费网站| 另类国产ts人妖高潮视频| 亚洲高清视频在线| 欧美电影专区| 欧美国产激情二区三区| 亚洲精品一区在线观看香蕉| 欧美激情视频免费观看| 欧美高清视频在线观看| 欧美视频精品一区| 亚洲一区二区精品在线| 日韩午夜电影| 国产精品久久精品日日| 欧美一区二区在线免费观看| 亚洲欧美精品中文字幕在线| 狠狠色综合日日| 麻豆精品传媒视频| 免费黄网站欧美| 亚洲精品欧美| 亚洲视频电影在线| 国产婷婷色一区二区三区四区| 久久久久久久综合色一本| 久久天天躁狠狠躁夜夜av| 亚洲欧洲在线看| 国产精品99久久久久久人| 国产日韩三区| 亚洲国产精品久久| 欧美午夜在线视频| 久久伊人一区二区| 欧美理论在线播放| 久久精品理论片| 欧美大尺度在线| 久久se精品一区二区| 美国三级日本三级久久99| 亚洲视频日本| 久久久99久久精品女同性| 亚洲美女av电影| 欧美一区激情视频在线观看| 亚洲韩国青草视频| 亚洲天天影视| 亚洲精品少妇网址| 欧美一级在线播放| 99国产精品视频免费观看一公开| 亚洲一区二区三区四区中文| 亚洲国产专区校园欧美| 亚洲午夜在线| 亚洲人成欧美中文字幕| 午夜日韩电影| 在线亚洲高清视频| 开心色5月久久精品| 亚洲欧美高清| 欧美激情片在线观看| 久久久久国产一区二区三区四区| 欧美日韩国产小视频在线观看| 久久午夜影视| 国产麻豆精品在线观看| 一区二区三区高清在线观看| 亚洲激情综合| 久久漫画官网| 久久久久免费观看| 国产女优一区| 亚洲视频欧美视频| 一区二区三区欧美| 欧美国产精品专区| 欧美a一区二区| 国外成人网址| 欧美亚洲日本一区| 午夜伦欧美伦电影理论片| 欧美人牲a欧美精品| 亚洲精品123区| 亚洲电影免费在线观看| 久久精品亚洲一区二区三区浴池| 午夜精品福利一区二区三区av| 欧美视频精品在线观看| 日韩天堂av| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩亚洲欧美一区| 一区二区三区免费网站| 欧美乱妇高清无乱码| 最新成人在线| 一区二区三区久久| 欧美三级黄美女| 亚洲天堂av图片| 欧美一区成人| 韩国av一区| 免费欧美电影| 99综合在线| 欧美中在线观看| 一区福利视频| 欧美成人午夜激情在线| 亚洲精品一区二| 亚洲欧美日韩精品久久| 国产日韩欧美夫妻视频在线观看| 午夜欧美大片免费观看| 久久伊人亚洲| 亚洲剧情一区二区| 欧美性jizz18性欧美| 午夜亚洲一区| 欧美激情亚洲| 亚洲一区二区三区免费视频| 国产日本亚洲高清| 麻豆精品视频在线观看| 日韩天堂在线观看| 久久精选视频| 一本大道久久a久久精二百| 国产精品三区www17con| 久久免费高清视频| 99视频精品在线| 久久九九全国免费精品观看| 亚洲大胆在线| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 久久一区二区三区超碰国产精品| 亚洲高清三级视频| 亚洲免费网址| 亚洲国产成人av在线| 欧美午夜性色大片在线观看| 久久久精品一区二区三区| 亚洲精品欧美精品| 久久国产一区二区三区| 99精品欧美一区二区三区综合在线 | 亚洲欧美国产一区二区三区| 免费日韩av片| 欧美一级片一区| 亚洲伦理在线观看| 国产一区二区三区丝袜| 欧美日韩在线第一页| 久久亚洲欧美| 欧美一级艳片视频免费观看| 99视频在线精品国自产拍免费观看 | 国产精品无码永久免费888| 久久嫩草精品久久久久| 亚洲一二三级电影| 亚洲欧洲在线视频| 嫩草影视亚洲| 久久福利资源站| 亚洲午夜一二三区视频| 亚洲韩国一区二区三区| 国产一区二区三区的电影| 亚洲一区三区在线观看| 亚洲激情在线观看| 欧美黄色aaaa| 欧美88av| 久久人人97超碰精品888|