zoukankan      html  css  js  c++  java
  • [h5棋牌项目]-15-C#与C++通信

    参考资料

    C#与C++通信 https://blog.csdn.net/chihun_love/article/details/53944425

    C#和C++的Socket通信 https://www.cnblogs.com/rainbow70626/p/8000984.html

    C#与c++的通信 [问题点数:30分] https://bbs.csdn.net/topics/390314206?page=1

    Windows下C++程序与C#程序间通信 https://wenku.baidu.com/view/5f7f7b2fed630b1c59eeb592.html

    C++代码

    #include <windows.h>
    #include <iostream>
    #include <tchar.h>
    using namespace std;
    int main()
    {
    	HANDLE h; 
    	TCHAR * pipename=_T("\\.\pipe\testpipe"); //管道名,要跟服务器的一致
    	//等待这个命名管道可用,确保服务器已经运行
    	if (WaitNamedPipe( pipename, NMPWAIT_WAIT_FOREVER)==FALSE ){
    		cout << "请先运行服务器!" << endl; 
    		return 1;
    	}
    	//打开管道文件以便读写,实际上连接到命名管道服务器程序
    	h=CreateFile(pipename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ| FILE_SHARE_WRITE,NULL, OPEN_EXISTING, 
    		FILE_ATTRIBUTE_ARCHIVE|FILE_FLAG_WRITE_THROUGH, NULL); 
    	if (h!=INVALID_HANDLE_VALUE){
    		char buf[100];
    		DWORD len;
    		if(ReadFile(h,buf,100,&len,NULL)){  //管道连接成功,从管道读取数据
    			buf[len] = '';				//设置字符串结束标志,输出读取到的数据
    			cout << buf << endl;
    		}
    		WriteFile(h,buf,len,&len,NULL);		//回送刚才读取的数据到服务器
    		Sleep(3000);						//等待以便服务器取走回送的数据
    		CloseHandle(h);						//关闭管道连接
    	}
    	return 0;
    }
    

    C#代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.IO;
    using System.IO.Compression;
    using Newtonsoft.Json.Linq;
    using System.IO.Pipes;
    
    namespace ConsoleApplication2
    {
        class Program
        {
            static void test()
            {
                //创建命名管道
                NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe");
                //等待客户端连接
                pipeServer.WaitForConnection();
                Console.WriteLine("Client connected.");
                try
                {
                    StreamWriter sw = new StreamWriter(pipeServer); //准备管道writer
                    StreamReader sr = new StreamReader(pipeServer); //准备管道reader
                    sw.AutoFlush = true;                            //设置写后自动刷新
                    Console.Write("Enter text: ");                  //读取用户从键盘输入的数据发送到客户端
                    sw.WriteLine(Console.ReadLine());
                    Console.WriteLine("客户端回送的数据:" + sr.ReadLine());//读取客户端回传的数据
                }
                catch (IOException e)                               //异常处理
                {
                    Console.WriteLine("ERROR: {0}", e.Message);
                }
            }
    
            static void Main(string[] args)
            {
                test();
            }
        }
    }
    
  • 相关阅读:
    网站要满足用户的期望
    在网站内如何引导你的用户
    网站要一步一步的引导用户
    photoshop:制作sprite拼贴图片
    photoshop:css3插件
    注册表修改PSD关联photoshop
    photoshop:找不到增效工具入口点
    ajax:$.get()
    Photoshop支持ico输出
    JavaScript数字精度丢失问题总结
  • 原文地址:https://www.cnblogs.com/byfei/p/14104139.html
Copyright © 2011-2022 走看看