60 lines
1.2 KiB
C#
60 lines
1.2 KiB
C#
using System;
|
|
using System.Threading;
|
|
using Thrift.Protocol;
|
|
using ZMQ;
|
|
using ZmqServer;
|
|
using ZmqClient;
|
|
|
|
namespace ZmqServer
|
|
{
|
|
class MainClass
|
|
{
|
|
public static void Main (string[] args)
|
|
{
|
|
new Thread(Server.serve).Start();
|
|
Client.work();
|
|
}
|
|
|
|
static class Server{
|
|
public static void serve(){
|
|
StorageHandler s=new StorageHandler();
|
|
Storage.Processor p=new Storage.Processor(s);
|
|
|
|
ZMQ.Context c=new ZMQ.Context();
|
|
|
|
TZmqServer tzs=new TZmqServer(p,c,"tcp://127.0.0.1:9090",ZMQ.SocketType.PAIR);
|
|
tzs.Serve();
|
|
}
|
|
|
|
class StorageHandler:Storage.Iface{
|
|
int val=0;
|
|
|
|
public void incr(int amount){
|
|
val+=amount;
|
|
Console.WriteLine("incr({0})",amount);
|
|
}
|
|
|
|
public int get(){
|
|
return val;
|
|
}
|
|
}
|
|
}
|
|
|
|
static class Client{
|
|
public static void work()
|
|
{
|
|
Context ctx=new Context();
|
|
TZmqClient tzc=new TZmqClient(ctx,"tcp://127.0.0.1:9090",SocketType.PAIR);
|
|
TBinaryProtocol p=new TBinaryProtocol(tzc);
|
|
|
|
Storage.Client client=new Storage.Client(p);
|
|
tzc.Open();
|
|
|
|
Console.WriteLine(client.@get());
|
|
client.incr(1);
|
|
client.incr(41);
|
|
Console.WriteLine(client.@get());
|
|
}
|
|
}
|
|
}
|
|
}
|