Пример #1
0
        public void SetConnectionForClient(string clientAddress)
        {
            try
            {
                state = new State
                {
                    BufferSize = 1024
                };

                if (clientAddress == "localhost")
                {
                    ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList
                                .First(address => address.AddressFamily == AddressFamily.InterNetwork);
                }
                else
                {
                    ipAddress = Dns.GetHostEntry(clientAddress).AddressList
                                .First(address => address.AddressFamily == AddressFamily.InterNetwork);
                }

                state.EndPoint = new IPEndPoint(ipAddress, Port);
                state.Buffer   = new byte[state.BufferSize];
            }
            catch (Exception exception)
            {
                logger.Error(exception.Message, exception);
                ExceptionThrownMethod.Invoke(exception.Message);
            }
        }
Пример #2
0
 private void SendCallback(IAsyncResult asyncResult)
 {
     try
     {
         state.TcpListener.EndSend(asyncResult);
     }
     catch (Exception exception)
     {
         logger.Error(exception.Message, exception);
         ExceptionThrownMethod.Invoke(exception.Message);
     }
 }
Пример #3
0
        private void ConnectCallback(IAsyncResult asyncResult)
        {
            try
            {
                state.TcpListener.EndConnect(asyncResult);

                state.TcpListener.BeginReceive(state.Buffer, 0, state.BufferSize, SocketFlags.None,
                                               new AsyncCallback(ReceiveCallback), null);
            }
            catch (Exception exception)
            {
                logger.Error(exception.Message, exception);
                ExceptionThrownMethod.Invoke(exception.Message);
            }
        }
Пример #4
0
        public void Send(string message)
        {
            try
            {
                //var bytesToSend = messageCryptor.EncryptMessage(Encoding.Unicode.GetBytes(message));
                var bytesToSend = Encoding.Unicode.GetBytes(message);

                state.TcpListener.BeginSend(bytesToSend, 0, bytesToSend.Length, SocketFlags.None,
                                            new AsyncCallback(SendCallback), null);
            }
            catch (Exception exception)
            {
                logger.Error(exception.Message, exception);
                ExceptionThrownMethod.Invoke(exception.Message);
            }
        }
Пример #5
0
        public void Connect()
        {
            try
            {
                state.TcpListener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

                state.TcpListener.BeginConnect(state.EndPoint, new AsyncCallback(ConnectCallback), null);

                ConnectionInvokedMethod.Invoke(true);
            }
            catch (Exception exception)
            {
                ConnectionInvokedMethod.Invoke(false);
                logger.Error(exception.Message, exception);
                ExceptionThrownMethod.Invoke(exception.Message);
            }
        }
Пример #6
0
        private void ReceiveCallback(IAsyncResult asyncResult)
        {
            try
            {
                var bytesToRead = state.TcpListener.EndReceive(asyncResult);

                if (bytesToRead > 0)
                {
                    ChatContent = Encoding.Unicode.GetString(state.Buffer, 0, bytesToRead);
                    ChatContentReceivedMethod.Invoke();

                    state.TcpListener.BeginReceive(state.Buffer, 0, state.BufferSize, SocketFlags.None,
                                                   new AsyncCallback(ReceiveCallback), null);
                }
            }
            catch (Exception exception)
            {
                logger.Error(exception.Message, exception);
                ExceptionThrownMethod.Invoke(exception.Message);
            }
        }