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; } } }
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(); }
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); }
protected static bool OnPingRequest(UserSocket client, CodedInputStream stream) { return(true); }