System.Net.Sockets.SocketPal.Receive C# (CSharp) Méthode

Receive() private static méthode

private static Receive ( SafeCloseSocket socket, SocketFlags flags, byte buffer, int offset, int count, byte socketAddress, int &socketAddressLen, SocketFlags &receivedFlags, System.Net.Interop &errno ) : int
socket SafeCloseSocket
flags SocketFlags
buffer byte
offset int
count int
socketAddress byte
socketAddressLen int
receivedFlags SocketFlags
errno System.Net.Interop
Résultat int
        private static unsafe int Receive(SafeCloseSocket socket, SocketFlags flags, byte[] buffer, int offset, int count, byte[] socketAddress, ref int socketAddressLen, out SocketFlags receivedFlags, out Interop.Error errno)
        {
            Debug.Assert(socketAddress != null || socketAddressLen == 0, $"Unexpected values: socketAddress={socketAddress}, socketAddressLen={socketAddressLen}");

            long received;

            int sockAddrLen = 0;
            if (socketAddress != null)
            {
                sockAddrLen = socketAddressLen;
            }

            fixed (byte* sockAddr = socketAddress)
            fixed (byte* b = buffer)
            {
                var iov = new Interop.Sys.IOVector {
                    Base = (b == null) ? null : &b[offset],
                    Count = (UIntPtr)count
                };

                var messageHeader = new Interop.Sys.MessageHeader {
                    SocketAddress = sockAddr,
                    SocketAddressLen = sockAddrLen,
                    IOVectors = &iov,
                    IOVectorCount = 1
                };

                errno = Interop.Sys.ReceiveMessage(socket, &messageHeader, flags, &received);
                receivedFlags = messageHeader.Flags;
                sockAddrLen = messageHeader.SocketAddressLen;
            }

            if (errno != Interop.Error.SUCCESS)
            {
                return -1;
            }

            socketAddressLen = sockAddrLen;
            return checked((int)received);
        }

Same methods

SocketPal::Receive ( SafeCloseSocket handle, IList buffers, SocketFlags &socketFlags, int &bytesTransferred ) : SocketError
SocketPal::Receive ( SafeCloseSocket handle, byte buffer, int offset, int count, SocketFlags socketFlags, int &bytesTransferred ) : SocketError
SocketPal::Receive ( SafeCloseSocket socket, SocketFlags flags, IList buffers, byte socketAddress, int &socketAddressLen, SocketFlags &receivedFlags, System.Net.Interop &errno ) : int