// void ISocket.SendQueuedPackets() // { // } void ISocket.AsyncSend(byte[] data, int offset, int size, SocketSendCallback callback, object state) { byte[] array = LegacyNetBufferPool.RequestBuffer(data, offset, size); this._connection.GetStream().BeginWrite(array, 0, size, new AsyncCallback(this.SendCallback), new object[] { new Tuple <SocketSendCallback, object>(callback, state), array }); }
private void SendCallback(IAsyncResult result) { object[] expr_0B = (object[])result.AsyncState; LegacyNetBufferPool.ReturnBuffer((byte[])expr_0B[1]); Tuple <SocketSendCallback, object> tuple = (Tuple <SocketSendCallback, object>)expr_0B[0]; try { this._connection.GetStream().EndWrite(result); tuple.Item1(tuple.Item2); } catch (Exception) { ((ISocket)this).Close(); } }