示例#1
0
        public IAsyncResult BeginReceiveFrom(byte[] buffer, int size, SocketFlags flags, ref EndPoint ep, AsyncCallback callback, object state)
        {
            CallbackState st = new CallbackState();

            st.buffer = buffer;
            st.size   = size;
            st.state  = state;
            return(_socket.BeginReceiveFrom(buffer, 0, size, flags, ref ep, callback, st));
        }
示例#2
0
        public int BeginSend(byte[] buffer, int size, SocketFlags flags, AsyncCallback callback, object state)
        {
            CallbackState st = new CallbackState();

            st.size  = size;
            st.state = state;

            _socket.BeginSend(buffer, 0, size, 0, callback, st);
            return(size);
        }
示例#3
0
        public int EndReceive(IAsyncResult ar)
        {
            int bytesRead = _socket.EndReceive(ar);

            if (bytesRead > 0)
            {
                CallbackState st = (CallbackState)ar.AsyncState;
                st.size = bytesRead;
                return(bytesRead);
            }

            _close = true;
            return(bytesRead);
        }
示例#4
0
        public byte[] GetAsyncResultBuffer(IAsyncResult ar)
        {
            CallbackState st = (CallbackState)ar.AsyncState;

            return(st.buffer);
        }
示例#5
0
        public int GetAsyncResultSize(IAsyncResult ar)
        {
            CallbackState st = (CallbackState)ar.AsyncState;

            return(st.size);
        }