예제 #1
0
        public virtual void AsyncSend(NetworkData a_oData)
        {
            try
            {
                NetworkAction?.StateChanged(State.Sending, new StateObject(this, a_oData));

                NetworkSocket?.BeginSend(a_oData.Buffer, 0, a_oData.DataLength(true), SocketFlags.None, new AsyncCallback(SendCallback), this);
            }
            catch (Exception)
            {
                NetworkAction?.StateChanged(State.Error, new StateObject(this));
            }
        }
예제 #2
0
        protected virtual void AcceptConnection()
        {
            try
            {
                NetworkAction?.StateChanged(State.Listening, new StateObject(this));

                m_oNetObject?.BeginAcceptTcpClient(new AsyncCallback(AcceptCallback), this);
            }
            catch (Exception e)
            {
                NetworkAction?.StateChanged(State.Error, new StateObject(this, e));
            }
        }
예제 #3
0
        public virtual void AsyncReceive()
        {
            Data?.Clear();

            try
            {
                NetworkAction?.StateChanged(State.Receiving, new StateObject(this));

                NetworkSocket?.BeginReceive(Data.Buffer, 0, Data.BufferLength, SocketFlags.None, new AsyncCallback(ReceiveCallback), this);
            }
            catch (Exception)
            {
                NetworkAction?.StateChanged(State.Error, new StateObject(this));
            }
        }
예제 #4
0
        public virtual StateObject SyncReceive()
        {
            try
            {
                Data?.Clear();

                NetworkSocket?.Receive(Data.Buffer, SocketFlags.None);

                return(new StateObject(this, Data));
            }
            catch (Exception)
            {
            }

            NetworkAction?.StateChanged(State.Error);

            return(null);
        }
예제 #5
0
        public override void Establish()
        {
            if (IsConnected)
            {
                return;
            }

            try
            {
                m_oNetObject.Start();

                AcceptConnection();

                return;
            }
            catch (Exception)
            {
            }

            NetworkAction?.StateChanged(State.Error, new StateObject(this));
        }
예제 #6
0
        public override void Establish()
        {
            if (IsConnected)
            {
                return;
            }

            try
            {
                m_oNetObject.BeginConnect(Address, Port, new AsyncCallback(ConnectCallback), this);

                NetworkAction?.StateChanged(State.Connecting, new StateObject(this));

                return;
            }
            catch (Exception)
            {
            }

            NetworkAction?.StateChanged(State.Error, new StateObject(this));
        }