asyncreceiveregistration.cs

来自「破解的飞信源代码」· CS 代码 · 共 44 行

CS
44
字号
namespace NCindy.Protocol.UDT
{
    using NCindy.CommandProcessor;
    using System;
    using System.Net.Sockets;

    internal sealed class AsyncReceiveRegistration : ICommand
    {
        internal int OverlappedIoHanlde;
        internal byte[] ParamBuffer;
        internal AsyncCallback ParamCallBack;
        internal int ParamOffset;
        internal int ParamSize;
        internal SocketFlags ParamSocketFlags;
        internal object ParamState;
        internal UDTSocket Socket;

        internal AsyncReceiveRegistration(UDTSocket socket, byte[] paramBuffer, int paramOffset, int paramSize, SocketFlags paramSocketFlags, AsyncCallback paramCallBack, object paramState)
        {
            this.Socket = socket;
            this.ParamCallBack = paramCallBack;
            this.ParamState = paramState;
            this.ParamBuffer = paramBuffer;
            this.ParamOffset = paramOffset;
            this.ParamSize = paramSize;
            this.ParamSocketFlags = paramSocketFlags;
        }

        public void Execute()
        {
            if (!this.Socket.Connected)
            {
                this.ParamCallBack(new UDTAsyncResult(0, this.ParamState));
            }
            else
            {
                int size = this.Socket.Receive(this.ParamBuffer, this.ParamOffset, this.ParamSize, this.ParamSocketFlags);
                this.ParamCallBack(new UDTAsyncResult(size, this.ParamState, this.Socket, this.OverlappedIoHanlde));
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?