Windows下C++程序与C#程序间通信

上传人:夏** 文档编号:490292544 上传时间:2023-05-15 格式:DOCX 页数:3 大小:10.04KB
返回 下载 相关 举报
Windows下C++程序与C#程序间通信_第1页
第1页 / 共3页
Windows下C++程序与C#程序间通信_第2页
第2页 / 共3页
Windows下C++程序与C#程序间通信_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Windows下C++程序与C#程序间通信》由会员分享,可在线阅读,更多相关《Windows下C++程序与C#程序间通信(3页珍藏版)》请在金锄头文库上搜索。

1、Windows下C+程序与C#程序间通信2011 年5月5日星期四 陈宗权最近有人问在同一台计算机上,这两种程序之间如何通信。其实,不管什么语言编写的 程序,对于操作系统而言每个运行的程序都是一个进程,所以,进程间通信的方式应该都适 用于它们之间通信。但语言不同还是有影响的。比如C#不支持指针,那些依赖指针的进程间通信方式将无 法使用。不同语言的进程一般不会是父子进程,就算勉强做成父子进程继承来的东西因为不 同语言的数据类型不同也无法使用,因此依靠继承的进程间通信方式也不便使用。网络通信、命名管道应该是可以的,因为它们有能力跨越计算机进行进程间通信,自然 也应该能跨越语言。鉴于这个想法,我编写

2、了一个C#程序和一个C+程序,都是控制台应 用程序,让它们通过命名管道相互通信。其中我把C#程序写成了服务器,把C+程序写成 了客户端,双方都进行了数据收发。C#写的服务器程序:using System;using System.IO;using System.IO.Pipes;namespace ConsoleApplication1class Programstatic void Main(string args)/创建命名管道NamedPipeServerStream pipeServer = new NamedPipeServerStream(testpipe); /等待客户端连接pi

3、peServer.WaitForConnection();Console.WriteLine(Client connected.);tryStreamwriter sw = new StreamWriter(pipeServer);/准备管道 writer StreamReader sr = new StreamReader(pipeServer);/准备管道 reader sw.AutoFlush = true;/设置写后自动刷新Console.Write(Enter text: );/读取用户从键盘输入的数据发送到客户端 sw.WriteLine(Console.ReadLine();Co

4、nsole.WriteLineC客户端回送的数据:+sr.ReadLine();读取客户端回传 的数据catch (lOException e)异常处理Console.WriteLine(ERROR: 0, e.Message);VC 的客户端:#include #include using namespace std;int main()HANDLE h;const char* pipename=.pipetestpipe; /管道名,要跟服务器的一致 /等待这个命名管道可用,确保服务器已经运行if (WaitNamedPipe( pipename, NMPWAIT_WAIT_FOREVER

5、)=FALSE )cout 请先运行服务器! endl;return 1;FILE_SHARE_READ| /打开管道文件以便读写,实际上连接到命名管道服务器程序 h=CreateFile(pipename, GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE|FILE_FLAG_WRITE_THROUGH, NULL);if (h!=INVALID_HANDLE_VALUE)char buf100;DWORD len;if(ReadFile(h,buf,100,&len,NULL)/管道连接成功,从管道读取数据 buflen = 0;/设置字符串结束标志,输出读取到的数据 cout buf endl;WriteFile(h,buf,len,&len,NULL);回送刚才读取的数据到服务器Sleep(3000);等待以便服务器取走回送的数据CloseHandle(h);/关闭管道连接return 0;经实际测试,程序运行和通信良好。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号