Beispiel #1
0
        private void OnReceiveCallback(object _obj, SocketAsyncEventArgs _receiveArgs)
        {
            //client -> Server
            CUserToken           _token    = _receiveArgs.UserToken as CUserToken;
            Socket               _socket   = _token.socket;
            SocketAsyncEventArgs _sendArgs = _token.sendArgs;

            //------------------------------------
            // _acceptArgs.Buffer -> data read...
            //------------------------------------
            int _transferred = _receiveArgs.BytesTransferred;

            byte[] _buffer = new byte[_transferred];
            Array.Copy(_receiveArgs.Buffer, _receiveArgs.Offset, _buffer, 0, _transferred);
            _socket.ReceiveAsync(_receiveArgs);             //receive Async


            //------------------------------------
            //
            //------------------------------------
            string _text     = Encoding.ASCII.GetString(_buffer);
            string _response = string.Empty;

            if (_text.ToLower().Equals("get time"))
            {
                _response = " > good call";
            }
            else
            {
                _response = " > bad call";
            }
            byte[] _data = Encoding.ASCII.GetBytes(_response);
            Array.Copy(_data, 0, _sendArgs.Buffer, _sendArgs.Offset, _data.Length);
            _sendArgs.SetBuffer(_sendArgs.Offset, _data.Length);
            _socket.SendAsync(_sendArgs);

            //------------------------------------
            //
            //------------------------------------
        }
Beispiel #2
0
        private void OnAcceptCallback(object _obj, SocketAsyncEventArgs _acceptArgs)
        {
            Console.WriteLine("Client connect");

            //--------------------------------------------
            //acceptSocket rewait (Async)
            //--------------------------------------------
            Socket _clientSocket = _acceptArgs.AcceptSocket;

            _acceptArgs.AcceptSocket = null;
            acceptSocket.AcceptAsync(_acceptArgs);


            //--------------------------------------------
            // New Client User..
            //--------------------------------------------
            CUserToken _token = new CUserToken(_clientSocket, OnReceiveCallback, OnSendCallback);

            listUser.Add(_token);

            //Socket receive Async wait
            _clientSocket.ReceiveAsync(_token.receiveArgs);
        }