Esempio n. 1
0
        override protected void dataReceivedCallback(IAsyncResult asyn)
        {
            SocketPacket socketData = (SocketPacket)asyn.AsyncState;
            int          res        = socketData.m_currentSocket.EndReceive(asyn);

            if (res <= 0)
            {
                Stop();
            }
            else
            {
                try
                {
                    lock (this)
                    {
                        if (m_mainSocket != null)
                        {
                            if (DataReceived != null)
                            {
                                DataReceived(this, new DataEventArgs(socketData.dataBuffer, res));
                            }
                        }
                    }
                }
                catch (SocketException sex)
                {
                    FireExceptionOccured(sex);
                }
                catch (Exception ex)
                {
                    //LOG: General Exception
                    FireExceptionOccured(ex);
                }
            }
        }
Esempio n. 2
0
        override protected void dataReceivedCallback(IAsyncResult asyn)
        {
            SocketPacket socketData = (SocketPacket)asyn.AsyncState;
            int          res        = 0;

            try
            {
                res = socketData.m_currentSocket.EndReceive(asyn);
            }
            catch (Exception e)
            {
                FireExceptionOccured(e);
            }
            if (res <= 0)
            {
                Stop();
            }
            else
            {
                try
                {
                    lock (this)
                    {
                        if (DataReceived != null)
                        {
                            DataReceived(this, new DataEventArgs(socketData.dataBuffer, res));
                        }
                    }
                }
                catch (ObjectDisposedException ode)
                {
                    //Console.WriteLine(ode.ObjectName);
                    //Console.WriteLine(ode.Message);
                    FireExceptionOccured(ode);
                }
                catch (SocketException sex)
                {
                    //LOG: Socket Exception
                    //Console.WriteLine(sex.Message);
                    //Console.WriteLine(sex.StackTrace);
                    if (!m_mainSocket.Connected)
                    {
                        FireChannelDisconnected();
                    }
                    else
                    {
                        FireExceptionOccured(sex);
                    }
                }
                catch (Exception e)
                {
                    //LOG: General Exception
                    FireExceptionOccured(e);
                }
            }
        }
Esempio n. 3
0
        override protected void dataReceivedCallback(IAsyncResult asyn)
        {
            SocketPacket socketData = (SocketPacket)asyn.AsyncState;
            int          res        = socketData.m_currentSocket.EndReceive(asyn);

            if (res <= 0)
            {
                DisconnectClient(socketData.m_currentSocket.GetHashCode());
            }
            else
            {
                try
                {
                    lock (this)
                    {
                        if (DataReceived != null)
                        {
                            DataReceived(this, new ServerDataEventArgs(socketData.dataBuffer, res, socketData.m_currentSocket.GetHashCode()));
                        }
                    }
                }
                catch (ObjectDisposedException ode)
                {
                    //Console.WriteLine(ode.ObjectName);
                    //Console.WriteLine(ode.Message);
                    FireExceptionOccured(ode);
                }
                catch (SocketException sex)
                {
                    if (sex.ErrorCode == 10054) // Error code for Connection reset by peer
                    {
                        m_workerSocketList.Remove(socketData.m_currentSocket);
                        if (ChannelClientDisconnected != null)
                        {
                            ChannelClientDisconnected(
                                this,
                                new ServerConnectionEventArgs(socketData.m_currentSocket.GetHashCode())
                                );
                        }
                    }
                    else
                    {
                        //LOG: Socket Exception
                        //Console.WriteLine(sex.Message);
                        //Console.WriteLine(sex.StackTrace);
                        FireExceptionOccured(sex);
                    }
                }
                catch (Exception e)
                {
                    //LOG: General Exception
                    FireExceptionOccured(e);
                }
            }
        }
Esempio n. 4
0
        protected void WaitForData(int bufferSize, Socket socket)
        {
            if (m_pfnCallBack == null)
            {
                m_pfnCallBack = new AsyncCallback(dataReceivedCallback);
            }
            SocketPacket theSocPkt = new SocketPacket(socket, bufferSize);

            socket.BeginReceive(theSocPkt.dataBuffer, 0,
                                theSocPkt.dataBuffer.Length,
                                SocketFlags.None,
                                m_pfnCallBack,
                                theSocPkt);
        }