System.Net.Sockets.Socket.DoBeginSend C# (CSharp) Méthode

DoBeginSend() private méthode

private DoBeginSend ( byte buffer, int offset, int size, SocketFlags socketFlags, OverlappedAsyncResult asyncResult ) : SocketError
buffer byte
offset int
size int
socketFlags SocketFlags
asyncResult OverlappedAsyncResult
Résultat SocketError
        private SocketError DoBeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, OverlappedAsyncResult asyncResult)
        {
            if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"SRC:{LocalEndPoint} DST:{RemoteEndPoint} size:{size}");

            // Guarantee to call CheckAsyncCallOverlappedResult if we call SetUnamangedStructures with a cache in order to
            // avoid a Socket leak in case of error.
            SocketError errorCode = SocketError.SocketError;
            try
            {
                // Get the Send going.
                if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"asyncResult:{asyncResult} size:{size}");

                errorCode = SocketPal.SendAsync(_handle, buffer, offset, size, socketFlags, asyncResult);

                if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"Interop.Winsock.WSASend returns:{errorCode} size:{size} returning AsyncResult:{asyncResult}");
            }
            finally
            {
                errorCode = asyncResult.CheckAsyncCallOverlappedResult(errorCode);
            }

            // Throw an appropriate SocketException if the native call fails synchronously.
            if (errorCode != SocketError.Success)
            {
                UpdateStatusAfterSocketError(errorCode);
                if (NetEventSource.IsEnabled)
                {
                    if (NetEventSource.IsEnabled) NetEventSource.Error(this, new SocketException((int)errorCode));
                }
            }
            return errorCode;
        }

Same methods

Socket::DoBeginSend ( IList buffers, SocketFlags socketFlags, OverlappedAsyncResult asyncResult ) : SocketError