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

隨筆 - 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>
            国产精品久99| 亚洲一区黄色| 久久精品免视看| 久久av一区二区三区漫画| 亚洲一区二区三区高清不卡| 在线午夜精品自拍| 亚洲欧美资源在线| 欧美中日韩免费视频| 久久婷婷综合激情| 亚洲盗摄视频| 日韩一级不卡| 亚洲影院高清在线| 久久婷婷人人澡人人喊人人爽| 久久中文精品| 国产精品久久激情| 伊人久久久大香线蕉综合直播 | 国产精品亚洲片夜色在线| 国产女主播在线一区二区| 国语自产精品视频在线看8查询8| 亚洲国产婷婷| 香蕉成人伊视频在线观看| 你懂的国产精品| 亚洲午夜精品久久久久久app| 久久精品日韩| 国产精品福利av| 久久国产高清| 麻豆精品一区二区av白丝在线| 亚洲国产精品va在线观看黑人 | 日韩亚洲不卡在线| 一区二区电影免费观看| 亚洲在线观看视频网站| 另类专区欧美制服同性| 欧美午夜片在线免费观看| 伊人成年综合电影网| 亚洲一区二区四区| 亚洲大片精品永久免费| 欧美一区亚洲一区| 国产精品久久久久久久久久ktv| 影音先锋欧美精品| 欧美一级在线播放| 亚洲美女免费精品视频在线观看| 性视频1819p久久| 欧美三区在线| 亚洲精品黄色| 欧美jizz19性欧美| 欧美在线影院| 国产日韩成人精品| 亚洲欧美视频在线观看| 亚洲开发第一视频在线播放| 久久婷婷丁香| 国产午夜亚洲精品羞羞网站| 性欧美暴力猛交另类hd| 在线一区二区三区四区五区| 欧美欧美午夜aⅴ在线观看| 亚洲第一视频| 欧美激情视频免费观看| 久久一区二区三区国产精品| 有坂深雪在线一区| 欧美国产高清| 欧美久久在线| 亚洲一区二区三区中文字幕| 一区二区动漫| 国产区在线观看成人精品| 亚洲摸下面视频| 国产精品美女久久| 一本久道久久综合狠狠爱| 欧美一级二区| 国产最新精品精品你懂的| 欧美一级理论性理论a| 亚洲一区三区视频在线观看| 国产精品国产三级国产a| 欧美一级专区| 性欧美1819sex性高清| 国产亚洲aⅴaaaaaa毛片| 久久久久欧美| 毛片一区二区| 夜夜嗨av一区二区三区网站四季av| 欧美在线免费看| 欧美激情a∨在线视频播放| 亚洲美洲欧洲综合国产一区| 亚洲国产国产亚洲一二三| 农村妇女精品| 一区二区精品在线观看| 亚洲欧美美女| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产精品成人一区二区| 欧美日韩精品在线| 久久精品91久久久久久再现| 久久久激情视频| 一区二区三区欧美日韩| 校园激情久久| 99精品99久久久久久宅男| 亚洲尤物在线| 亚洲激情国产| 亚洲欧美制服中文字幕| 最新中文字幕亚洲| 亚洲欧美精品suv| 最新日韩在线视频| 欧美一区二区三区四区在线观看地址 | 亚洲黄色av| 亚洲深夜福利在线| **欧美日韩vr在线| 日韩视频在线观看| 在线观看欧美成人| 亚洲一区3d动漫同人无遮挡| 亚洲国产精品一区二区三区| 日韩小视频在线观看| 精品动漫av| 亚洲一区在线免费| 日韩亚洲欧美一区二区三区| 欧美有码在线观看视频| 亚洲视频免费| 欧美高清在线一区二区| 久久夜色精品国产欧美乱| 国产精品igao视频网网址不卡日韩| 美女主播一区| 国产一区二区三区日韩| 一区二区三区视频在线看| 亚洲人成毛片在线播放| 久久久精品国产99久久精品芒果| 亚洲综合日韩在线| 欧美日韩1080p| 欧美黑人国产人伦爽爽爽| 国产一区二区三区在线观看网站| 一区二区高清| 一区二区三区视频在线看| 模特精品在线| 欧美丰满高潮xxxx喷水动漫| 激情六月综合| 久久精品视频在线| 久久婷婷国产综合精品青草| 国产视频久久久久| 午夜精品福利在线| 久久大香伊蕉在人线观看热2| 国产精品高清一区二区三区| 一级日韩一区在线观看| 国产一区二区三区高清播放| 亚洲视频图片小说| 亚洲私人影院| 欧美午夜在线观看| 亚洲网站在线播放| 午夜精品一区二区三区在线播放| 欧美午夜女人视频在线| 在线综合亚洲欧美在线视频| 亚洲综合第一页| 国产麻豆视频精品| 欧美伊人久久久久久久久影院| 久久aⅴ国产欧美74aaa| 国产一区二区三区在线播放免费观看 | 国产精品一区二区在线| 亚洲在线成人| 久久精品国产免费| 怡红院av一区二区三区| 久久午夜电影| 亚洲经典自拍| 亚洲综合99| 国产日韩精品一区二区三区在线| 亚洲欧美在线一区| 蜜臀av一级做a爰片久久| 最新日韩在线视频| 欧美视频中文一区二区三区在线观看 | 亚洲国产第一页| 免费欧美日韩| 99国产精品私拍| 久久成人资源| 亚洲二区视频在线| 欧美视频日韩视频在线观看| 亚洲在线观看免费| 欧美黑人国产人伦爽爽爽| 亚洲图片欧洲图片日韩av| 国产亚洲综合精品| 欧美女主播在线| 欧美一区二区视频在线| 亚洲国产导航| 欧美一二区视频| 亚洲国产成人精品女人久久久 | 一区二区高清| 欧美h视频在线| 亚洲欧美成人一区二区三区| 国产视频在线一区二区| 欧美激情区在线播放| 午夜精品成人在线视频| 亚洲精品国产精品国自产在线| 欧美一级在线视频| 9久草视频在线视频精品| 国产一区二区黄色| 国产精品电影在线观看| 欧美不卡在线| 久久国产日韩| 亚洲字幕在线观看| 亚洲免费av片| 亚洲高清不卡在线| 久久成人人人人精品欧| 久久蜜桃精品| 亚洲欧美日韩爽爽影院| 亚洲第一精品电影| 国产亚洲精品综合一区91| 欧美日韩成人| 欧美不卡在线| 老司机一区二区|