1 module app;
2 
3 import std.stdio;
4 import std.conv;
5 
6 import kissrpc.Unit;
7 import kissrpc.Logs;
8 import kissrpc.RpcServer;
9 import kissrpc.RpcSocketBaseInterface;
10 
11 import kiss.event.GroupPoll;
12 import std.traits;
13 
14 
15 class ServerSocket : ServerSocketEventInterface
16 {
17 	void listenFailed(const string str)
18 	{
19 		deWriteln("server listen failed", str);
20 	}
21 
22 	void disconnectd(RpcSocketBaseInterface socket)
23 	{
24 		deWriteln("client is disconnect");
25 	}
26 
27 	shared static int connect_num;
28 	void inconming(RpcSocketBaseInterface socket)
29 	{
30 		logInfo("client inconming:%s:%s, connect num:%s", socket.getIp, socket.getPort, connect_num++);
31 	}
32 
33 	void writeFailed(RpcSocketBaseInterface socket)
34 	{
35 		deWritefln("write buffer to client is failed, %s:%s", socket.getIp, socket.getPort);
36 	}
37 
38 	void readFailed(RpcSocketBaseInterface socket)
39 	{
40 		deWritefln("read buffer from client is failed, %s:%s", socket.getIp, socket.getPort);
41 	}
42 }
43 
44 
45 
46 void main(string[] args)
47 {
48 
49 	import kissrpc.IDL.kissidlService;
50 
51 	auto rpServer = new RpcServer(new ServerSocket);
52 	auto address_book_service = new RpcAddressBookService(rpServer);
53 
54 
55 	auto poll = new GroupPoll!();
56 
57 	if(rpServer.listen("0.0.0.0", 4444, poll))
58 	{
59 		logInfo("start server is ok");
60 	}
61 
62 	poll.start();
63 	poll.wait();
64 }