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); //------------------------------------ // //------------------------------------ }
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); }