如何在本地程序中呼叫遠端計算機上的程序

2021-04-13 06:03:00 字數 2076 閱讀 8905

回答這個問題其實就是rpc的程式設計:開發rpc應用程式,乙個重要的要素就是介面。顯然在

客戶和伺服器的介面存根必須基於完全相同的函式定義上;否則rpc會失敗。  

1.定義介面(hello.idl):  

[  

uuid(0eb13191-f7c4-11d3-bf4a-00104b17a4fb),/*注意你必須在自己的程式中生成自己的uuid,利用guidgen

應用程式,在visual   studio中*/  

version(1.0)  

]  

2.應用

程式配置檔案(hello.acf)  

[  

implicit_handle(handle_t   hello_ifhandle)  

//implicit_handle   的使用規定作為全域性變數

維護控制代碼  

]  

inte***ce   hello  

3.編譯hello.idl  

midl   hello.idl  

編譯的結果生成hello_c.c,hello_s.c,hello.h  

你看一下這些檔案,發現了什麼?!  

4.編寫

伺服器程式  

#include  

#include  

#include   "hello.h"  

void   helloproc(const   unsigned   char*   pszstring)  

void   shutdown(void)  

void   main(int   argc,char*   argv)  

void   __rpc_far*   __rpc_user   midl_user_allocate(size_t   len)  

void   __rpc_user   midl_user_free(void   __rpc_far   *ptr)  

inte***ce   hello  

5.編譯伺服器程式  

cl   hellos.c   hello_s.c   rpcrt4.lib  

生成hellos.exe  

6.編寫客戶程式  

#include  

#include  

#include  

#include   "hello.h"  

void   main(int   argc,char*   argv)  

rpcstringbindingcompose(null,(unsigned   char*)"ncacn_ip_tcp",(unsigned   char*)argv[1],(unsigned   char*)"8000",null,&pszstringbinding);  

rpcbindingfromstringbinding(pszstringbinding,&hello_ifhandle);  

if(strcmp(argv[2],"shutdown"))helloproc((unsigned   char*)argv[2]);  

else   shutdown();  

rpcstringfree(&pszstringbinding);  

rpcbindingfree(&hello_ifhandle);  

exit(0);  

}  

void   __rpc_far*   __rpc_user   midl_user_allocate(size_t   len)  

void   __rpc_user   midl_user_free(void   __rpc_far   *ptr)  

7.編譯客戶程式  

cl   helloc.c   hello_c.c   rpcrt4.lib  

生成helloc.exe  

8. 測試

程式  

在兩個dos視窗中執行,乙個執行hellos,在同一臺機器上,另乙個執行helloc   localhost   「hello」  

看看發生了什麼?   

解決 本地計算機無法複製檔案到遠端計算機

首先開啟遠端計算機,並開啟任務管理器 在任務管理器中關閉rdpclip.exe程序 在遠端計算機,window r 在執行裡輸入 rdpclip.exe,最後回車 待遠端計算上的rdpclip.exe程序重新啟動後,再嘗試本地檔案複製到遠端計算機 相關描述 rdpclip 是讓rdp協議 遠端桌面協...

將本地計算機中的檔案複製並貼上到遠端計算機

2007 05 22 11 41 將本地計算機中的檔案複製並貼上到遠端計算機通過單擊 開始 單擊 程式 或 所有程式 單擊 附件 然後單擊 遠端桌面連線 開啟遠端桌面連線。在 遠端桌面連線 對話方塊中,單擊 選項 單擊 本地資源 選項卡,然後單擊 本地裝置和資源 下方的 更多 單擊 驅動器 旁邊的加...

如何通過tomcat入侵遠端計算機系統

今天真倒霉,學員通過tomcat黑了我的計算機 下面先說說怎麼被黑的過程吧!我昨天講解在servlet程式中如何讀寫資源時,講到了如果乙個servlet或jsp程式能夠讀寫當前計算機上的任意目錄的話,那麼採用tomcat對外出租虛擬主機時,就會出現安全問題,因為別人上傳的servlet jsp程式可...