RPC 编程(二)
来源:互联网 发布:物资管理系统源码 编辑:程序博客网 时间:2024/05/22 17:12
这部分基本和上一节一样,不过上一节中 RPC 是通过 Named Pipe 调用的,这里我们再试一下 TCP 的方式。代码大部分都是相同的, IDL 接口不用变(无论是通过什么方式 RPC,接口都是与之无关的)。服务端要换成 TCP 的方式:---------------------------------int main(int argc,char * argv[]){ // 用TCP 方式作为RPC 的通道。绑定端口13521。 RpcServerUseProtseqEp( (unsigned char *)"ncacn_ip_tcp", RPC_C_PROTSEQ_MAX_REQS_DEFAULT, (unsigned char *)"13521", NULL); // 注意:从Windows XP SP2 开始,增强了安全性的要求,如果用 RpcServerRegisterIf() 注册 // 接口,客户端调用时会出现 RpcExceptionCode() == 5,即Access Denied 的错误. 因此,必 // 须用 RpcServerRegisterIfEx 带 RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 标志允许客户端直 // 接调用。 // RpcServerRegisterIf(HelloWorld_v1_0_s_ifspec, NULL, NULL); RpcServerRegisterIfEx( HelloWorld_v1_0_s_ifspec, // Interface to register. NULL, NULL, // Use the MIDL generated entry-point vector. RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, 0, NULL); // 后面都相同 ... return 0;} 客户端的调用方式也要换:---------------------------------int main(int argc, char * argv[]){ // 前面都相同 ... // 用 TCP 方式作为 RPC 的通道。服务器端口 13521。第3个 // 参数 NetworkAddr 如果取 NULL,那么就是连接本机服务, // 也可以取IP, 域名, servername 等 RpcStringBindingCompose( NULL, (unsigned char*)"ncacn_ip_tcp", (unsigned char*)"localhost" /*NULL*/, (unsigned char*)"13521", NULL, &pszStringBinding ); // 后面都相同 ... }别的地方都是一样的。
- RPC 编程(二)
- Win32 RPC 编程(二)
- RPC 编程
- RPC 编程
- RPC 编程
- RPC 编程
- RPC编程
- RPC 编程
- RPC编程
- RPC 编程
- RPC 编程
- 深入了解RPC <二>
- 深入浅出RPC(二)
- RPC学习(二):RPC的原理分析
- 两种RPC编程
- RPC 编程(一)
- RPC 编程(三)
- RPC编程(四)
- 字符串分割函数
- Xtreme.Toolkit.Pro v12.0.0 汉化发布
- [ZZ] 空指针问题
- 计算机语言-古今多少事,都付笑谈中
- RPC 编程(一)
- RPC 编程(二)
- 查看Linux系统一些方法
- RPC 编程(三)
- RPC编程(四)
- 文本文件以指定的字符串分割
- .ascx和.ashx文件说明
- 用ashx动态生成文件
- ASP.net的HTTP处理程序(ASHX)提取dll内嵌资源图片
- 互斥量的建立