254 for (
int i = 0; i <
count; i++)
627 _strongThisRef.Value =
this;
746 socket.DualMode =
true;
765 socket.ReplaceHandleIfNecessaryAfterFailedConnect();
904 _currentSocket._remoteEndPoint =
null;
1193 wSABuffer.Length =
_count;
1246 wSABuffer.Length =
_count;
1288 bool flag = _currentSocket.AddressFamily == AddressFamily.InterNetwork || (
iPAddress?.IsIPv4MappedToIPv6 ??
false);
1373 wSABuffer.Length =
_count;
1496 wSABuffer.Length =
_count;
1546 for (
int i = 0; i <
count; i++)
1646 array[
num3].flags = global::Interop.Winsock.TransmitPacketsElementFlags.Memory | (sendPacketsElement2.EndOfPacket ? global::Interop.Winsock.TransmitPacketsElementFlags.EndOfPacket : global::Interop.Winsock.TransmitPacketsElementFlags.None);
1655 array[
num3].flags = global::Interop.Winsock.TransmitPacketsElementFlags.File | (sendPacketsElement2.EndOfPacket ? global::Interop.Winsock.TransmitPacketsElementFlags.EndOfPacket : global::Interop.Winsock.TransmitPacketsElementFlags.None);
1664 array[
num3].flags = global::Interop.Winsock.TransmitPacketsElementFlags.File | (sendPacketsElement2.EndOfPacket ? global::Interop.Winsock.TransmitPacketsElementFlags.EndOfPacket : global::Interop.Winsock.TransmitPacketsElementFlags.None);
1753 _strongThisRef.Value =
null;
void Add(TKey key, TValue value)
static bool HasShutdownStarted
static void SuppressFinalize(object obj)
static SafeFileHandle OpenHandle(string path, FileMode mode=FileMode.Open, FileAccess access=FileAccess.Read, FileShare share=FileShare.Read, FileOptions options=FileOptions.None, long preallocationSize=0L)
static byte Min(byte val1, byte val2)
static Task< IPAddress[]> GetHostAddressesAsync(string hostNameOrAddress)
virtual EndPoint Create(SocketAddress socketAddress)
override bool Equals(object comparand)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
static void Connected(Socket socket, object localEp, object remoteEp)
static void Accepted(Socket socket, object remoteEp, object localEp)
static void DumpBuffer(object thisOrContextObject, byte[] buffer, int offset, int count, [CallerMemberName] string memberName=null)
static void ValidateSegment(ArraySegment< byte > segment)
static System.Net.Internals.SocketAddress Serialize(EndPoint endpoint)
ThreadPoolBoundHandle? IOCPBoundHandle
bool SkipCompletionPortOnSuccess
void OnCompleted(Action< object > continuation, object state, short token, ValueTaskSourceOnCompletedFlags flags)
void GetResult(short token)
ManualResetValueTaskSourceCore< bool > _mrvtsc
MultiConnectSocketAsyncEventArgs()
bool ReachedCoordinationPointFirst()
ValueTaskSourceStatus GetStatus(short token)
override void OnCompleted(SocketAsyncEventArgs e)
unsafe SocketError DoOperationConnectEx(Socket socket, SafeSocketHandle handle)
void SetBuffer(byte[]? buffer, int offset, int count)
GCHandle _socketAddressGCHandle
unsafe SocketError DoOperationReceiveFromMultiBuffer(SafeSocketHandle handle)
byte[] _controlBufferPinned
Exception _connectByNameError
unsafe SocketError ProcessIOCPResult(bool success, int bytesTransferred, NativeOverlapped *overlapped)
unsafe SocketError DoOperationReceiveFromSingleBuffer(SafeSocketHandle handle, CancellationToken cancellationToken)
void SetupMultipleBuffers()
bool DnsConnectAsync(DnsEndPoint endPoint, SocketType socketType, ProtocolType protocolType)
void FinishOperationAsyncFailure(SocketError socketError, int bytesTransferred, SocketFlags flags)
SocketAsyncOperation LastOperation
unsafe SocketError DoOperationSendToMultiBuffer(SafeSocketHandle handle)
unsafe SocketError DoOperationReceiveSingleBuffer(SafeSocketHandle handle, CancellationToken cancellationToken)
SendPacketsElement?[] SendPacketsElements
TransmitFileOptions SendPacketsFlags
MemoryHandle _singleBufferHandle
unsafe NativeOverlapped * AllocateNativeOverlapped()
void FinishOperationAsyncSuccess(int bytesTransferred, SocketFlags flags)
void CancelConnectAsync()
void StartOperationCommonCore()
unsafe int GetSocketAddressSize()
void FinishOperationSendPackets()
TransmitFileOptions _sendPacketsFlags
unsafe void RegisterToCancelPendingIO(NativeOverlapped *overlapped, CancellationToken cancellationToken)
MemoryHandle[] _multipleBufferMemoryHandles
Memory< byte > MemoryBuffer
void AfterConnectAcceptTelemetry()
unsafe SocketError DoOperationReceiveMessageFrom(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
static void LogBytesTransferEvents(SocketType? socketType, SocketAsyncOperation operation, int bytesTransferred)
void FinishOperationSyncFailure(SocketError socketError, int bytesTransferred, SocketFlags flags)
volatile AsyncProcessingState _asyncProcessingState
void SetResults(Exception exception, int bytesTransferred, SocketFlags flags)
PreAllocatedOverlapped _preAllocatedOverlapped
void OnCompletedInternal()
bool DisconnectReuseSocket
IntPtr PtrSocketAddressBufferSize
unsafe SocketError DoOperationSendPackets(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
unsafe SocketError FinishOperationAccept(System.Net.Internals.SocketAddress remoteSocketAddress)
SendPacketsElement[] _sendPacketsElements
IPPacketInformation ReceiveMessageFromPacketInfo
unsafe void FreeNativeOverlapped(NativeOverlapped *overlapped)
System.Net.Internals.SocketAddress _pinnedSocketAddress
unsafe SocketError DoOperationAccept(Socket socket, SafeSocketHandle handle, SafeSocketHandle acceptHandle, CancellationToken cancellationToken)
bool _bufferIsExplicitArray
void StartOperationCommon(Socket socket, SocketAsyncOperation operation)
IPPacketInformation _receiveMessageFromPacketInfo
void FinishOperationSync(SocketError socketError, int bytesTransferred, SocketFlags flags)
void PinSocketAddressBuffer()
unsafe SocketError DoOperationReceiveMultiBuffer(SafeSocketHandle handle)
void SetResults(SocketError socketError, int bytesTransferred, SocketFlags flags)
static unsafe readonly IOCompletionCallback s_completionPortCallback
readonly StrongBox< SocketAsyncEventArgs > _strongThisRef
WSABuffer[] _wsaRecvMsgWSABufferArrayPinned
List< ArraySegment< byte > > _bufferListInternal
unsafe SocketError DoOperationSendMultiBuffer(SafeSocketHandle handle)
CancellationTokenSource _multipleConnectCancellation
unsafe SocketError FinishOperationConnect()
unsafe SocketError DoOperationDisconnect(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
SocketError DoOperationSend(SafeSocketHandle handle, CancellationToken cancellationToken)
ExecutionContext _context
int _acceptAddressBufferCount
unsafe SocketError DoOperationSendToSingleBuffer(SafeSocketHandle handle, CancellationToken cancellationToken)
unsafe SocketError ProcessIOCPResultWithDeferredAsyncHandling(bool success, int bytesTransferred, NativeOverlapped *overlapped, Memory< byte > bufferToPin, CancellationToken cancellationToken=default(CancellationToken))
virtual void OnCompleted(SocketAsyncEventArgs e)
Exception? ConnectByNameError
SocketAsyncOperation _completedOperation
EventHandler< SocketAsyncEventArgs >? Completed
void FinishOperationSyncSuccess(int bytesTransferred, SocketFlags flags)
SocketError DoOperationConnect(Socket socket, SafeSocketHandle handle)
IList< ArraySegment< byte > >? BufferList
unsafe void HandleCompletionPortCallbackError(uint errorCode, uint numBytes, NativeOverlapped *nativeOverlapped)
byte[] _wsaMessageBufferPinned
SafeFileHandle[] _sendPacketsFileHandles
System.Net.Internals.SocketAddress _socketAddress
unsafe void FinishOperationReceiveMessageFrom()
bool _disconnectReuseSocket
static void ExecutionCallback(object state)
readonly bool _flowExecutionContext
unsafe SocketError DoOperationSendSingleBuffer(SafeSocketHandle handle, CancellationToken cancellationToken)
CancellationTokenRegistration _registrationToCancelPendingIO
void StartOperationAccept()
SocketAsyncEventArgs(bool unsafeSuppressExecutionContextFlow)
IList< ArraySegment< byte > > _bufferList
void SetBuffer(int offset, int count)
SocketError DoOperationReceive(SafeSocketHandle handle, CancellationToken cancellationToken)
void StartOperationConnect(bool saeaMultiConnectCancelable, bool userSocket)
SocketError DoOperationReceiveFrom(SafeSocketHandle handle, CancellationToken cancellationToken)
void SetBuffer(Memory< byte > buffer)
void InitializeInternals()
unsafe global::Interop.Winsock.TransmitPacketsElement[] SetupPinHandlesSendPackets(SendPacketsElement[] sendPacketsElementsCopy, int sendPacketsElementsFileCount, int sendPacketsElementsFileStreamCount, int sendPacketsElementsBufferCount)
unsafe SocketError GetIOCPResult(bool success, NativeOverlapped *overlapped)
void CopyBufferFrom(SocketAsyncEventArgs source)
unsafe NativeOverlapped * _pendingOverlappedForCancellation
static readonly ContextCallback s_executionCallback
SocketError DoOperationSendTo(SafeSocketHandle handle, CancellationToken cancellationToken)
void ThrowForNonFreeStatus(int status)
WSABuffer[] _wsaBufferArrayPinned
unsafe IntPtr PtrSocketAddressBuffer
static SocketError Connect(SafeSocketHandle handle, byte[] peerAddress, int peerAddressLen)
static SocketError GetLastSocketError()
static unsafe IPPacketInformation GetIPPacketInformation(global::Interop.Winsock.ControlData *controlBuffer)
AddressFamily AddressFamily
SafeSocketHandle SafeHandle
virtual void Dispose(bool disposing)
unsafe? EndPoint LocalEndPoint
void GetAcceptExSockaddrs(IntPtr buffer, int receiveDataLength, int localAddressLength, int remoteAddressLength, out IntPtr localSocketAddress, out int localSocketAddressLength, out IntPtr remoteSocketAddress, out int remoteSocketAddressLength)
Socket UpdateAcceptSocket(Socket socket, EndPoint remoteEP)
void Connect(EndPoint remoteEP)
static int GetAddressSize(EndPoint endPoint)
void UpdateStatusAfterSocketError(SocketException socketException)
static void CancelConnectAsync(SocketAsyncEventArgs e)
bool CanTryAddressFamily(AddressFamily family)
ThreadPoolBoundHandle GetOrAllocateThreadPoolBoundHandle()
static readonly SocketsTelemetry Log
static void Copy(int[] source, int startIndex, IntPtr destination, int length)
static unsafe IntPtr UnsafeAddrOfPinnedArrayElement(Array arr, int index)
IntPtr DangerousGetHandle()
static string net_buffercounttoosmall
static string Format(string resourceFormat, object p1)
static string InvalidOperation_BufferNotExplicitArray
static string net_ambiguousbuffers
static string net_socketopinprogress
static ? ExecutionContext Capture()
static void Run(ExecutionContext executionContext, ContextCallback callback, object? state)
static int CompareExchange(ref int location1, int value, int comparand)
static int Exchange(ref int location1, int value)
static PreAllocatedOverlapped UnsafeCreate(IOCompletionCallback callback, object? state, object? pinData)
unsafe void FreeNativeOverlapped(NativeOverlapped *overlapped)
static unsafe? object GetNativeOverlappedState(NativeOverlapped *overlapped)
ValueTaskSourceOnCompletedFlags
delegate void ContextCallback(object? state)
unsafe delegate void IOCompletionCallback(uint errorCode, uint numBytes, NativeOverlapped *pOVERLAP)
static readonly IntPtr Zero
unsafe MemoryHandle Pin()
override bool Equals([NotNullWhen(true)] object? obj)
static GCHandle Alloc(object? value)
void SetResult(TResult result)
ValueTaskSourceStatus GetStatus(short token)
TResult GetResult(short token)
void OnCompleted(Action< object?> continuation, object? state, short token, ValueTaskSourceOnCompletedFlags flags)
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)