`
cuishuangjia
  • 浏览: 150908 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

C# IPC通讯

阅读更多
首先建立一个IPC通讯中使用的对象,其中MarshalByRefObject 是必须的

using System;

namespace Ipctest
{
    public class test:MarshalByRefObject
    {
        private int iCount = 0;
        public int count()
        {
            iCount++;
            return iCount;
        }

        public int Add(int x)
        {
            iCount += x;
            return iCount;
        }
    }
}

接着建一个服务端控制台程序

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

namespace Ipctest
{
    class Program
    {
        static void Main(string[] args)
        {
           IpcChannel serverchannel = new IpcChannel("testchannel");
            ChannelServices.RegisterChannel(serverchannel,false);
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(test), "test", WellKnownObjectMode.Singleton);
            Console.WriteLine("press Enter to exit");
            Console.ReadLine();
            Console.WriteLine("server stopped");
        }
    }
}

最后是客户端控制台程序

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

namespace Ipctest
{
    class Program
    {
        static void Main(string[] args)
        {
            IpcChannel tcc = new IpcChannel();
            ChannelServices.RegisterChannel(tcc,false);
            WellKnownClientTypeEntry remotEntry = new WellKnownClientTypeEntry(typeof(test), "ipc://testchannel/test");
            RemotingConfiguration.RegisterWellKnownClientType(remotEntry);

            test st = new test();
            Console.WriteLine("{0},{1}",st.count(),st.Add(1));
            Console.ReadLine();
        }
    }
}

在测试的过程中会发现第一次调用客户端输出结果:
1,2
第二次输出结果
3,4
……
结果是比较符合要求的。
分享到:
评论

相关推荐

    TCP+IPC通信类库(源码+示例)

    2. IPC进程通信:支持本地进程间通信,支持任意类型数据(文件传输除外),模式有push和pull两种。 具体使用方法,请看示例! 给单位做考勤系统,找了一些通信框架,都不理想,索性就自己动手,类库最开始是去年年初...

    c# Remoting 实现进程间互相调用 并传递消息

    c# Remoting 实现进程间互相调用 并传递消息

    进程间通讯(两个应用程序如何通讯)C#源代码.rar

    进程间通讯(两个应用程序如何通讯)C#源代码 消息传递 message-passing:通过操作系统的相应系统调用进行消息传递通讯。分为直接和间接两种: 直接通信方式:点到点的发送 Send (DestProcessName, Message); ...

    在.NET中基于Windows消息的IPC实现

    这是我的Blog文章《在.NET中基于Windows消息的IPC实现》一文的源码例子。

    C# 进程间通信,IPC通信

    NET Remoting、消息队列、WCF(集成了前述方法的功能,但太新,不支持Windows2000及以前的系统),其中Remoting可以支持TCP、HTTP、IPC通道的通信,而IPC通道速度快,且仅能供处于同一个系统中的进程间进行通讯。...

    c#整合zeroIce - 传递复杂对象

    zeroIce是一个跨平台跨语言的通讯框架,利用zeroIce可快速搭建c#的rpc服务器。

    QT之进程和进程间通信(IPC)

    进程是操作系统的基础之一。一个进程可以认为是一个正在执行的程序。...这个类可以允许我们的应用程序开启一个新的外部程序,并且与这个程序进行通讯。下面我们用一个非常简单的例子开始我们本章有关进程的阐述。

    SMEMA通訊規範

    工业自动化机台与机台之间的通讯协议,接口协议针脚定义。

    进程间通讯Demo123.zip

    C#进程间通讯,通俗易懂有需要的来啊,这里的服务端和客户端只是逻辑概念,只要知道对方的 IPC 端口号和路由地址,就可以实现调用。

    命名管道测试代码(C#)

    项目中在同一台机器上要使用进程间通讯,研究了IPC,命名管道等相关技术,觉得命名管道比较适合我这个项目。但网上资料不是很全,根据网上资料,自己写了个测试程序。压缩包中包含两个测试,其中一个NamedPipe.cs是...

    进程间通信之共享内存C#源代码

    在C#中,有多种进程间通信(Inter-Process Communication,IPC)的技术。以下是一些主要的通信方式: 1.命名管道(Named Pipes) 2.套接字(Sockets) 3.共享内存(Shared Memory) 4.信号量(Semaphore) 5.消息...

    SharedMemory:C#共享内存类,用于在进程之间共享数据(数组,缓冲区和循环缓冲区)

    共享内存C#共享内存类,用于在进程之间共享数据(数组,缓冲区,循环缓冲区和RPC)关于SharedMemory类库提供了一组C#类,这些C#类利用内存映射文件进行快速的低级进程间通信(IPC)。 最初仅用于在进程之间共享...

    IPCTest.rar

    C#,IpcServerChannel,IpcClientChannel不同程序之间的通讯。。。

    remoting双向通讯

    初学remoting,已实现信息互通,互相抖动窗口。

    SersPublish2.1.1.250.zip

    此为Sers微服务-服务中心运行程序,2.1.1.250版本。... Sers为一套跨平台跨语言的开源微服务架构协议。单机QPS能达15万。目前支持C++、Java、c#、javascript。...支持原生tcp、zmp、websocket、ipc等多种通讯方式。

    华夏车牌识别二次开发软件.rar

    华夏相机车牌识别系统sdk开发库for windows 有多个代码实例,非常方便。

Global site tag (gtag.js) - Google Analytics