Ejemplo n.º 1
0
        protected override void SendSync(IPosList <ArraySegment <byte> > items)
        {
            try
            {
                for (var i = 0; i < items.Count; i++)
                {
                    var item = items[i];

                    var client = Client;

                    if (client == null)
                    {
                        return;
                    }

                    client.Send(item.Array, item.Offset, item.Count, SocketFlags.None);
                }
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                {
                    AppSession.Logger.Error(AppSession, e);
                }

                Close(CloseReason.SocketError);
                return;
            }

            OnSendingCompleted();
        }
Ejemplo n.º 2
0
        private IPosList <ArraySegment <byte> > GetSendingItems()
        {
            if (m_SendingItems == null)
            {
                m_SendingItems = new PosList <ArraySegment <byte> >();
            }

            return(m_SendingItems);
        }
Ejemplo n.º 3
0
        protected override void SendAsync(IPosList <ArraySegment <byte> > items)
        {
            var e = new SocketAsyncEventArgs();

            e.Completed     += new EventHandler <SocketAsyncEventArgs>(SendingCompleted);
            e.RemoteEndPoint = RemoteEndPoint;
            e.BufferList     = items;
            m_ServerSocket.SendToAsync(e);
        }
Ejemplo n.º 4
0
        protected override void SendAsync(IPosList <ArraySegment <byte> > items)
        {
            try
            {
                if (items.Count > 1)
                {
                    if (m_SocketEventArgSend.Buffer != null)
                    {
                        m_SocketEventArgSend.SetBuffer(null, 0, 0);
                    }

                    m_SocketEventArgSend.BufferList = items;
                }
                else
                {
                    var currentItem = items[0];

                    try
                    {
                        if (m_SocketEventArgSend.BufferList != null)
                        {
                            m_SocketEventArgSend.BufferList = null;
                        }
                    }//Supress this exception
                    catch (Exception) //a strange NullReference exception
                    {
                        //if (AppSession.Logger.IsErrorEnabled)
                        //    AppSession.Logger.Error(AppSession, e);
                    }
                    finally
                    {
                        m_SocketEventArgSend.SetBuffer(currentItem.Array, 0, currentItem.Count);
                    }
                }

                var client = Client;

                if (client == null)
                {
                    return;
                }

                if (!client.SendAsync(m_SocketEventArgSend))
                {
                    OnSendingCompleted(client, m_SocketEventArgSend);
                }
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                {
                    AppSession.Logger.Error(AppSession, e);
                }

                Close(CloseReason.SocketError);
            }
        }
Ejemplo n.º 5
0
        protected override void SendSync(IPosList <ArraySegment <byte> > items)
        {
            for (var i = 0; i < items.Count; i++)
            {
                var item = items[i];
                m_ServerSocket.SendTo(item.Array, item.Offset, item.Count, SocketFlags.None, RemoteEndPoint);
            }

            OnSendingCompleted();
        }
Ejemplo n.º 6
0
 private void Send(IPosList <ArraySegment <byte> > items)
 {
     if (SyncSend)
     {
         SendSync(items);
     }
     else
     {
         SendAsync(items);
     }
 }
Ejemplo n.º 7
0
        protected override void SendAsync(IPosList<ArraySegment<byte>> items)
        {
            var e = new SocketAsyncEventArgs();
            e.Completed += new EventHandler<SocketAsyncEventArgs>(SendingCompleted);
            e.RemoteEndPoint = RemoteEndPoint;
            e.UserToken = items;

            var item = items[items.Position];
            e.SetBuffer(item.Array, item.Offset, item.Count);

            m_ServerSocket.SendToAsync(e);
        }
Ejemplo n.º 8
0
        protected override void SendAsync(IPosList <ArraySegment <byte> > items)
        {
            var e = new SocketAsyncEventArgs();

            e.Completed     += new EventHandler <SocketAsyncEventArgs>(SendingCompleted);
            e.RemoteEndPoint = RemoteEndPoint;
            e.UserToken      = items;

            var item = items[items.Position];

            e.SetBuffer(item.Array, item.Offset, item.Count);

            m_ServerSocket.SendToAsync(e);
        }
Ejemplo n.º 9
0
        protected override void SendAsync(IPosList <ArraySegment <byte> > items)
        {
            try
            {
                var item = items[items.Position];
                m_Stream.BeginWrite(item.Array, item.Offset, item.Count, OnEndWrite, items);
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                {
                    AppSession.Logger.Error(AppSession, e);
                }

                Close(CloseReason.SocketError);
            }
        }
Ejemplo n.º 10
0
 private void Send(IPosList<ArraySegment<byte>> items)
 {
     if (SyncSend)
     {
         SendSync(items);
     }
     else
     {
         SendAsync(items);
     }
 }
Ejemplo n.º 11
0
        private IPosList<ArraySegment<byte>> GetSendingItems()
        {
            if (m_SendingItems == null)
            {
                m_SendingItems = new PosList<ArraySegment<byte>>();
            }

            return m_SendingItems;
        }
Ejemplo n.º 12
0
 protected abstract void SendSync(IPosList<ArraySegment<byte>> items);
Ejemplo n.º 13
0
        protected override void SendSync(IPosList<ArraySegment<byte>> items)
        {
            try
            {
                for (var i = 0; i < items.Count; i++)
                {
                    var item = items[i];

                    var client = Client;

                    if (client == null)
                        return;

                    client.Send(item.Array, item.Offset, item.Count, SocketFlags.None);
                }
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                    AppSession.Logger.Error(AppSession, e);

                Close(CloseReason.SocketError);
                return;
            }

            OnSendingCompleted();
        }
Ejemplo n.º 14
0
        protected override void SendAsync(IPosList<ArraySegment<byte>> items)
        {
            try
            {
                if (items.Count > 1)
                {
                    if (m_SocketEventArgSend.Buffer != null)
                        m_SocketEventArgSend.SetBuffer(null, 0, 0);

                    m_SocketEventArgSend.BufferList = items;
                }
                else
                {
                    var currentItem = items[0];

                    try
                    {
                        if (m_SocketEventArgSend.BufferList != null)
                            m_SocketEventArgSend.BufferList = null;
                    }
                    catch (Exception e) //a strange NullReference exception
                    {
                        AppSession.Logger.Error(AppSession, e);
                    }

                    m_SocketEventArgSend.SetBuffer(currentItem.Array, 0, currentItem.Count);
                }

                var client = Client;

                if (client == null)
                    return;

                if (!client.SendAsync(m_SocketEventArgSend))
                    OnSendingCompleted(client, m_SocketEventArgSend);
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                    AppSession.Logger.Error(AppSession, e);

                Close(CloseReason.SocketError);
            }
        }
Ejemplo n.º 15
0
 protected abstract void SendSync(IPosList <ArraySegment <byte> > items);
        protected override void SendAsync(IPosList<ArraySegment<byte>> items)
        {
            try
            {
                var item = items[items.Position];
                m_Stream.BeginWrite(item.Array, item.Offset, item.Count, OnEndWrite, items);
            }
            catch (Exception e)
            {
                if (!IsIgnorableException(e))
                    AppSession.Logger.Error(AppSession, e);

                Close(CloseReason.SocketError);
            }
        }
Ejemplo n.º 17
0
        protected override void SendSync(IPosList<ArraySegment<byte>> items)
        {
            for (var i = 0; i < items.Count; i++)
            {
                var item = items[i];
                m_ServerSocket.SendTo(item.Array, item.Offset, item.Count, SocketFlags.None, RemoteEndPoint);
            }

            OnSendingCompleted();
        }