Beispiel #1
0
        protected override void OnStart(string[] args)
        {
            Log.log.Info("-------------------------------------------------------------------");
            Log.log.Info("Try to start TcpServer!");
            Log.log.Info("-------------------------------------------------------------------");

            if (false == ConfigManager.Instance.LoadServerConfig())
            {
                Log.log.Error("LoadServerConfig failed");
                return;
            }

            if (false == UserSocket.InitializePacketHandler())
            {
                Log.log.Error("InitializePacketHandler execution failed");
                return;
            }

            int port = 20000;

            s_tcpServer.Start(port);

            string input = string.Empty;

            while (true)
            {
                input = Console.ReadLine();
                if (0 == input.ToLower().CompareTo("quit"))
                {
                    break;
                }
            }
        }
Beispiel #2
0
        protected override void NewClientAccepted(Socket socket)
        {
            SocketAsyncEventArgs receiveArgs = _receiveEventArgsPool.Pop();
            SocketAsyncEventArgs sendArgs    = _sendEventArgsPool.Pop();

            UserSocket client = new UserSocket(socket, this);

            client.SetSocketAsyncEventArg(sendArgs, receiveArgs);
            client.ID    = Interlocked.Increment(ref _socketIdSeq);
            client.State = SocketState.CONNECTED;

            Monitor.Enter(_userSocketDictLock);
            _userSocketDict[client.ID] = client;
            Monitor.Exit(_userSocketDictLock);

            client.StartReceive();
        }
Beispiel #3
0
        protected static bool OnEchoRequest(UserSocket client, CodedInputStream stream)
        {
            CsEchoRequest proto   = CsEchoRequest.Parser.ParseFrom(stream);
            string        message = proto.Message;

            Console.WriteLine(message);

            CsEchoOk response = new CsEchoOk();

            response.Message = message;

            Packet packet = new Packet();

            packet.EncodePacket(TcpServerCommand.CsEchoOk, response);
            client.Send(packet);

            return(true);
        }
Beispiel #4
0
 protected static bool OnPingRequest(UserSocket client, CodedInputStream stream)
 {
     return(true);
 }