回答這個問題其實就是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程式可...