public IChannel CreateChannel(Netronics netronics, Socket socket)
 {
     SocketChannel channel = SocketChannel.CreateChannel(socket);
     channel.SetProtocol(_procotol());
     channel.SetHandler(_handler());
     return channel;
 }
Beispiel #2
0
 public IChannel CreateChannel(Netronics netronics, Socket socket)
 {
     SslChannel channel = SslChannel.CreateChannel(socket, X509Certificate.CreateFromCertFile("test.cert"));
     channel.SetConfig("encoder", Encoder);
     channel.SetConfig("decoder", Decoder);
     channel.SetConfig("handler", _handler());
     return channel;
 }
Beispiel #3
0
        public void Run()
        {
            foreach (var commend in _cmd)
                commend.Value.Sort();

            _netronics = new Netronics(Properties.CreateProperties(new IPEndPoint(IPAddress.Any, _port), _channelPipe));
            _netronics.Start();
        }
Beispiel #4
0
 private Netronics CreateNetronics(int port=17777)
 {
     Console.WriteLine("Netronics 초기화 port:{0}", port);
     var netronics = new Netronics(Properties.CreateProperties(new IPEndPoint(IPAddress.Any, port), new ChannelPipe().SetCreateChannelAction(channel => { })));
     Console.WriteLine("Netronics 서버 시작 port:{0}", port);
     netronics.Start();
     return netronics;
 }
Beispiel #5
0
 public QueenAnt(QueenLoader loader)
 {
     _netronics = new Netronics(
         Properties.CreateProperties(
         new IPEndPoint(IPAddress.Any, loader.GetPort()),
         new ChannelPipe().SetCreateChannelAction(channel=>
             {
                 channel.SetConfig("encoder", BsonEncoder.Encoder);
                 channel.SetConfig("decoder", BsonDecoder.Decoder);
                 channel.SetConfig("handler", this);
             })));
     _netronics.Start();
 }
Beispiel #6
0
        private AntPacketHandler()
        {
            _instance = this;

            _netronics = new Netronics(
                Properties.CreateProperties(
                new IPEndPoint(IPAddress.Any, QueenAnt.GetQueenAnt().GetPort()),
                new ChannelPipe().SetCreateChannelAction(channel =>
                {
                    channel.SetConfig("encoder", BsonEncoder.Encoder);
                    channel.SetConfig("decoder", BsonDecoder.Decoder);
                    channel.SetConfig("handler", this);
                })));
            _netronics.Start();
        }
Beispiel #7
0
        public IChannel CreateChannel(Netronics netronics, Socket socket)
        {
            SslChannel channel;
            try
            {
                channel = SslChannel.CreateChannel(socket, _cert);
                channel.SetConfig("encoder", BsonEncoder.Encoder);
                channel.SetConfig("decoder", BsonDecoder.Decoder);
                channel.SetConfig("handler", new Handler(channel, _mobile));
            }
            catch(System.Exception e)
            {
                return null;
            }

            return channel;
        }
Beispiel #8
0
        public Server(IPacketEncoder encoder, IPacketDecoder decoder)
        {
            // Properties를 생성합니다. Properties는 Netronics의 각종 설정을 의미합니다.
            var properties = Properties.CreateProperties(new IPEndPoint(IPAddress.Any, 9999), // 클라이언트를 받을 아이피와 포트를 설정합니다.
                                                         new ChannelPipe().SetCreateChannelAction(channel => // 각 클라이언트가 접속하면 Channel을 생성하는 과정이 시작되는데 옵션을 아래와 같이 넣을 수 있습니다.
                                                         {
                                                             Console.WriteLine("전달하기 전 Channel의 설정");
                                                             channel.SetConfig("encoder", encoder); // 해당 Channel의 Packet Encoder을 설정합니다.
                                                             channel.SetConfig("decoder", decoder); // 해당 Channel의 Packet Decoder을 설정합니다.
                                                             channel.SetConfig("handler", this); // 해당 Channel의 Handler을 설정합니다.

                                                             channel.SetConfig("switch", new RandemSwitch()); //랜덤으로 전달되는지 확인 ReceiveSwitch 테스트

                                                             Console.WriteLine("Channel을 Netronics로 전달");
                                                         }));

            netronics = new Netronics(properties); // 위에서 만든 Properties를 바탕으로 Netronics 객체를 생성합니다.
            netronics.Start(); // 서버를 가동합니다.
        }
Beispiel #9
0
 public void OnStopEvent(Netronics netronics, EventArgs eventArgs)
 {
 }
Beispiel #10
0
 public void OnStartEvent(Netronics netronics, StartEventArgs eventArgs)
 {
 }
Beispiel #11
0
 public IChannel CreateChannel(Netronics netronics, Socket socket)
 {
     SocketChannel channel = SocketChannel.CreateChannel(socket);
     _createChannel(channel);
     return channel;
 }
Beispiel #12
0
 static void send(Netronics.PacketBuffer buffer)
 {
     byte[] data = buffer.GetBytes();
     client.Client.BeginSendTo(data, 0, data.Length, System.Net.Sockets.SocketFlags.None, client.Client.RemoteEndPoint, new AsyncCallback(sendto), null);
     buffer.Dispose();
 }