コード例 #1
0
ファイル: LinuxTcpSocket.cs プロジェクト: Z0kc/TShockMobile
//		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
            });
        }
コード例 #2
0
ファイル: LinuxTcpSocket.cs プロジェクト: Z0kc/TShockMobile
        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();
            }
        }