应用之间的网络通信

时间:2012-07-19 00:14:28

标签: c# networking

您好我将构建两个测试应用程序,一个在用户计算机上运行。它将是一个系统托盘类的后台应用程序来管理指定文件夹的内容。另一个是Admin类型的屏幕,显示当前网络中的哪些计算机正在运行第一个应用程序并读取一些数据(文件夹的内容)。

如何通过网络传输数据以查看应用中的特定数据?我再次只想查看正在运行的应用程序以及它们发送的数据(从管理员屏幕)。

1 个答案:

答案 0 :(得分:0)

这种interapp通信非常适合于ØMQ,它是一个带套接字式API的异步消息库,不需要代理 - 有一个很好的C# Binding

代码示例:

var publisher = new ZmqPublishSocket {
    Identity = Guid.NewGuid().ToByteArray(),
    RecoverySeconds = 10
};

publisher.Bind( address: "tcp://127.0.0.1:9292" );

// Add a subscriber.
var subscriber = new ZmqSubscribeSocket();

subscriber.Connect( address: "tcp://127.0.0.1:9292" );
subscriber.Subscribe( prefix: "" ); // subscribe to all messages

// Add a handler to the subscriber's OnReceive event
subscriber.OnReceive += () => {
    String message;
    subscriber.Receive( out message, nonblocking: true );

    Console.WriteLine( message );
};

// Publish a message to all subscribers.

publisher.Send( "Hello world!" );