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(); }
private IPosList <ArraySegment <byte> > GetSendingItems() { if (m_SendingItems == null) { m_SendingItems = new PosList <ArraySegment <byte> >(); } return(m_SendingItems); }
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); }
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); } }
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(); }
private void Send(IPosList <ArraySegment <byte> > items) { if (SyncSend) { SendSync(items); } else { SendAsync(items); } }
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); }
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); }
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); } }
private void Send(IPosList<ArraySegment<byte>> items) { if (SyncSend) { SendSync(items); } else { SendAsync(items); } }
private IPosList<ArraySegment<byte>> GetSendingItems() { if (m_SendingItems == null) { m_SendingItems = new PosList<ArraySegment<byte>>(); } return m_SendingItems; }
protected abstract void SendSync(IPosList<ArraySegment<byte>> items);
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(); }
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); } }
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); } }
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(); }