コード例 #1
0
ファイル: ClientManager.cs プロジェクト: puppt/GW2Emu
        private void AcceptCallback(IAsyncResult result)
        {
            try
            {
                // accept the client and create the object
                var clientSocket = serverSocket.EndAccept(result);

                var newClient = new Client(this, clientSocket);
                newClient.StartRecieve();

                // trigger the event
                OnNewClient(this, new NewClientEventArgs(newClient));

                // restart accept
                serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
            }
            catch (SocketException exc)
            {
                serverSocket.Close();
                Console.WriteLine("Socket exception: " + exc.SocketErrorCode);
            }
            catch (Exception exc)
            {
                serverSocket.Close();
                Console.WriteLine("Exception: " + exc);
            }
        }
コード例 #2
0
ファイル: GenericSession.cs プロジェクト: puppt/GW2Emu
        protected GenericSession(Client client, IEventAggregator aggregator)
        {
            this.client = client;
            this.aggregator = aggregator;

            State = new InvalidState();
        }
コード例 #3
0
ファイル: ClientManagerTest.cs プロジェクト: puppt/GW2Emu
 private void Reset()
 {
     client = null;
     buffer = new byte[]{};
     dataLen = 0;
     newClient = false;
     lostClient = false;
     newData = false;
 }
コード例 #4
0
ファイル: ClientManagerTest.cs プロジェクト: puppt/GW2Emu
        private void OnNewClient(Object sender, NewClientEventArgs e)
        {
            newClient = true;

            client = e.Client;

            client.OnNewData += OnNewData;
            client.OnLostClient += OnLostClient;
        }
コード例 #5
0
ファイル: GameSession.cs プロジェクト: puppt/GW2Emu
 // TODO: add whatever properties are needed in the login server per session here
 // but be careful not to introduce too much state!
 public GameSession(Client client, IEventAggregator aggregator)
     : base(client, aggregator)
 {
     State = new HandshakeState();
 }
コード例 #6
0
ファイル: NewDataEventArgs.cs プロジェクト: puppt/GW2Emu
 public NewDataEventArgs(Client client, byte[] buffer, int dataLen)
 {
     this.Client = client;
     this.Buffer = buffer;
     this.DataLen = dataLen;
 }
コード例 #7
0
ファイル: NewClientEventArgs.cs プロジェクト: puppt/GW2Emu
 public NewClientEventArgs(Client client)
 {
     this.Client = client;
 }
コード例 #8
0
ファイル: LostClientEventArgs.cs プロジェクト: puppt/GW2Emu
 public LostClientEventArgs(Client client)
 {
     this.Client = client;
 }