94 base.UserToken =
null;
303 if (
base.SocketError != 0)
338 base.UserToken =
state;
344 base.UserToken =
null;
583 [
Obsolete(
"SupportsIPv4 has been deprecated. Use OSSupportsIPv4 instead.")]
586 [
Obsolete(
"SupportsIPv6 has been deprecated. Use OSSupportsIPv6 instead.")]
718 [
Obsolete(
"UseOnlyOverlappedIO has been deprecated and is not supported.")]
1074 int nameLen =
span.Length;
1106 nameLen =
span.Length;
1250 if (address ==
null)
2148 System.
Net.
NetEventSource.
Info(
this,
$"optionLevel:{optionLevel} optionName:{optionName} optionValue:{optionValue}",
"SetSocketOption");
2158 System.
Net.
NetEventSource.
Info(
this,
$"optionLevel:{optionLevel} optionName:{optionName} optionValue:{optionValue}",
"SetSocketOption");
2185 System.
Net.
NetEventSource.
Info(
this,
$"optionLevel:{optionLevel} optionName:{optionName} optionValue:{optionValue}",
"SetSocketOption");
2227 System.
Net.
NetEventSource.
Info(
this,
$"SetSockOpt optionLevel:{optionLevel} optionName:{optionName} returns errorCode:{socketError}",
"SetRawSocketOption");
2308 System.
Net.
NetEventSource.
Info(
this,
$"GetRawSockOpt optionLevel:{optionLevel} optionName:{optionName} returned errorCode:{rawSockOpt}",
"GetRawSocketOption");
2445 if (
task.IsFaulted ||
task.IsCanceled)
2464 if (
task.IsFaulted ||
task.IsCanceled)
2498 System.
Net.
NetEventSource.
Info(
this,
$"::DoBeginSendFile() SRC:{LocalEndPoint} DST:{RemoteEndPoint} fileName:{fileName}",
"BeginSendFile");
2543 if (
task.IsFaulted ||
task.IsCanceled)
2562 if (
task.IsFaulted ||
task.IsCanceled)
2589 if (!
task.IsCompleted)
2593 if (
task.IsCompletedSuccessfully)
2612 if (
task.IsCompletedSuccessfully)
2655 if (
task.IsCompletedSuccessfully)
3210 bool flag = socketAddress.Family == AddressFamily.InterNetworkV6 && socketAddress.GetIPAddress().IsIPv4MappedToIPv6;
3217 return endPoint.AddressFamily
switch
3219 AddressFamily.InterNetworkV6 => 28,
3220 AddressFamily.InterNetwork => 16,
3619 System.
Net.
NetEventSource.
Info(
this,
$"errorCode:{socketError} willBlock:{_willBlock} willBlockInternal:{_willBlockInternal}",
"InternalSetBlocking");
3783 if (!
string.IsNullOrEmpty(name))
3849 socket.InternalSafeHandle.DangerousRelease();
3899 awaitableSocketAsyncEventArgs.AcceptSocket =
acceptSocket;
3900 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
3916 awaitableSocketAsyncEventArgs.RemoteEndPoint =
remoteEP;
3996 endPoint.Address = address;
4033 awaitableSocketAsyncEventArgs.DisconnectReuseSocket =
reuseSocket;
4034 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4062 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4063 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
fromNetworkStream;
4079 taskSocketAsyncEventArgs.BufferList =
buffers;
4080 taskSocketAsyncEventArgs.SocketFlags =
socketFlags;
4099 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4101 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4120 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4122 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4140 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4141 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4153 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4154 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
true;
4170 taskSocketAsyncEventArgs.BufferList =
buffers;
4171 taskSocketAsyncEventArgs.SocketFlags =
socketFlags;
4193 awaitableSocketAsyncEventArgs.SocketFlags =
socketFlags;
4194 awaitableSocketAsyncEventArgs.RemoteEndPoint =
remoteEP;
4195 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4244 awaitableSocketAsyncEventArgs.SendPacketsFlags = flags;
4245 awaitableSocketAsyncEventArgs.SendPacketsElements =
array;
4246 awaitableSocketAsyncEventArgs.WrapExceptionsForNetworkStream =
false;
4268 if (
buffer.Array ==
null)
4346 saea._accessed =
false;
4348 saea._wrapExceptionsInIOExceptions =
false;
4394 fixed (
int* nameLen = &socketAddress.InternalSize)
4415 global::Interop.Winsock.EnsureInitialized();
4416 global::Interop.Winsock.WSAPROTOCOL_INFOW
wSAPROTOCOL_INFOW =
default(global::Interop.Winsock.WSAPROTOCOL_INFOW);
4417 int optionLength =
sizeof(global::Interop.Winsock.WSAPROTOCOL_INFOW);
4483 System.
Net.
NetEventSource.
Info(
$"Enabling SO_REUSE_UNICASTPORT failed with error code: {socketError}",
null,
"EnableReuseUnicastPort");
4519 for (
int i = 0; i <
count; i++)
4548 for (
int i = 0; i < num; i++)
4557 socket.InternalSafeHandle.DangerousRelease();
static void BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count)
Exception? InnerException
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 void Delete(string path)
static IPAddress[] GetHostAddresses(string hostNameOrAddress)
virtual EndPoint Create(SocketAddress socketAddress)
virtual AddressFamily AddressFamily
static bool IsFatal(Exception exception)
static bool TryParse([NotNullWhen(true)] string? ipString, [NotNullWhen(true)] out IPAddress? address)
static readonly IPAddress Any
static readonly IPAddress IPv6Any
AddressFamily AddressFamily
static SocketException CreateSocketException(SocketError errorCode, int platformError)
static void ConnectedAsyncDns(Socket socket)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
static void Error(object thisOrContextObject, FormattableString formattableString, [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 uint GetIPv4Address(ReadOnlySpan< byte > buffer)
static ushort GetPort(ReadOnlySpan< byte > buffer)
static void GetIPv6Address(ReadOnlySpan< byte > buffer, Span< byte > address, out uint scope)
static bool OSSupportsUnixDomainSockets
static bool OSSupportsIPv4
static bool OSSupportsIPv6
DisconnectExDelegate GetDisconnectExDelegate(SafeSocketHandle socketHandle)
TransmitPacketsDelegate GetTransmitPacketsDelegate(SafeSocketHandle socketHandle)
AcceptExDelegate GetAcceptExDelegate(SafeSocketHandle socketHandle)
GetAcceptExSockaddrsDelegate GetGetAcceptExSockaddrsDelegate(SafeSocketHandle socketHandle)
ConnectExDelegate GetConnectExDelegate(SafeSocketHandle socketHandle)
WSARecvMsgDelegate GetWSARecvMsgDelegate(SafeSocketHandle socketHandle)
static DynamicWinsockMethods GetMethods(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
static SocketAddress GetNetSocketAddress(System.Net.Internals.SocketAddress address)
static System.Net.Internals.SocketAddress Serialize(EndPoint endpoint)
ThreadPoolBoundHandle GetThreadPoolBoundHandle()
ThreadPoolBoundHandle GetOrAllocateThreadPoolBoundHandle(bool trySkipCompletionPortOnSuccess)
unsafe SocketError DoOperationConnectEx(Socket socket, SafeSocketHandle handle)
bool DnsConnectAsync(DnsEndPoint endPoint, SocketType socketType, ProtocolType protocolType)
SendPacketsElement?[] SendPacketsElements
void CancelConnectAsync()
unsafe SocketError DoOperationReceiveMessageFrom(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
unsafe SocketError DoOperationSendPackets(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
unsafe SocketError DoOperationAccept(Socket socket, SafeSocketHandle handle, SafeSocketHandle acceptHandle, CancellationToken cancellationToken)
void StartOperationCommon(Socket socket, SocketAsyncOperation operation)
unsafe SocketError DoOperationDisconnect(Socket socket, SafeSocketHandle handle, CancellationToken cancellationToken)
SocketError DoOperationSend(SafeSocketHandle handle, CancellationToken cancellationToken)
SocketError DoOperationConnect(Socket socket, SafeSocketHandle handle)
System.Net.Internals.SocketAddress _socketAddress
void StartOperationAccept()
SocketError DoOperationReceive(SafeSocketHandle handle, CancellationToken cancellationToken)
void StartOperationConnect(bool saeaMultiConnectCancelable, bool userSocket)
SocketError DoOperationReceiveFrom(SafeSocketHandle handle, CancellationToken cancellationToken)
SocketError DoOperationSendTo(SafeSocketHandle handle, CancellationToken cancellationToken)
static unsafe SocketError Receive(SafeSocketHandle handle, IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out int bytesTransferred)
static unsafe SocketError GetPeerName(SafeSocketHandle handle, Span< byte > buffer, ref int nameLen)
static SocketError CreateSocket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType, out SafeSocketHandle socket)
static unsafe SocketError Select(IList checkRead, IList checkWrite, IList checkError, int microseconds)
static SocketError Connect(SafeSocketHandle handle, byte[] peerAddress, int peerAddressLen)
static SocketError GetLingerOption(SafeSocketHandle handle, out LingerOption optionValue)
static SocketError WindowsIoctl(SafeSocketHandle handle, int ioControlCode, byte[] optionInValue, byte[] optionOutValue, out int optionLength)
static readonly int MaximumAddressSize
static unsafe SocketError GetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, out int optionValue)
static SocketError SetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue)
static SocketError Accept(SafeSocketHandle listenSocket, byte[] socketAddress, ref int socketAddressSize, out SafeSocketHandle socket)
static SocketError Disconnect(Socket socket, SafeSocketHandle handle, bool reuseSocket)
static unsafe SocketError SendFile(SafeSocketHandle handle, SafeFileHandle fileHandle, ReadOnlySpan< byte > preBuffer, ReadOnlySpan< byte > postBuffer, TransmitFileOptions flags)
static SocketError ReceiveFrom(SafeSocketHandle handle, byte[] buffer, int offset, int size, SocketFlags socketFlags, byte[] socketAddress, ref int addressLength, out int bytesTransferred)
static void SetReceivingDualModeIPv4PacketInformation(Socket socket)
static SocketError SetMulticastOption(SafeSocketHandle handle, SocketOptionName optionName, MulticastOption optionValue)
static SocketError SendTo(SafeSocketHandle handle, byte[] buffer, int offset, int size, SocketFlags socketFlags, byte[] peerAddress, int peerAddressSize, out int bytesTransferred)
static void CheckDualModeReceiveSupport(Socket socket)
static unsafe SocketError SetRawSockOpt(SafeSocketHandle handle, int optionLevel, int optionName, ReadOnlySpan< byte > optionValue)
static unsafe SocketError Poll(SafeSocketHandle handle, int microseconds, SelectMode mode, out bool status)
static SocketError SetIPv6MulticastOption(SafeSocketHandle handle, SocketOptionName optionName, IPv6MulticastOption optionValue)
static SocketError ReceiveMessageFrom(Socket socket, SafeSocketHandle handle, byte[] buffer, int offset, int size, ref SocketFlags socketFlags, System.Net.Internals.SocketAddress socketAddress, out System.Net.Internals.SocketAddress receiveAddress, out IPPacketInformation ipPacketInformation, out int bytesTransferred)
static SocketError Listen(SafeSocketHandle handle, int backlog)
static unsafe SocketError GetRawSockOpt(SafeSocketHandle handle, int optionLevel, int optionName, Span< byte > optionValue, ref int optionLength)
static unsafe SocketError GetSockName(SafeSocketHandle handle, byte *buffer, int *nameLen)
static SocketError GetMulticastOption(SafeSocketHandle handle, SocketOptionName optionName, out MulticastOption optionValue)
static SocketError Bind(SafeSocketHandle handle, ProtocolType socketProtocolType, byte[] buffer, int nameLen)
static SocketError SetLingerOption(SafeSocketHandle handle, LingerOption optionValue)
static void SetIPProtectionLevel(Socket socket, SocketOptionLevel optionLevel, int protectionLevel)
static SocketError SetBlocking(SafeSocketHandle handle, bool shouldBlock, out bool willBlock)
static SocketError GetLastSocketError()
static SocketError GetIPv6MulticastOption(SafeSocketHandle handle, SocketOptionName optionName, out IPv6MulticastOption optionValue)
static unsafe SocketError Send(SafeSocketHandle handle, IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out int bytesTransferred)
static unsafe SocketError DuplicateSocket(SafeSocketHandle handle, int targetProcessId, out SocketInformation socketInformation)
static SocketError Shutdown(SafeSocketHandle handle, bool isConnected, bool isDisconnected, SocketShutdown how)
static SocketError GetAvailable(SafeSocketHandle handle, out int available)
Exception CreateException(SocketError error, bool forAsyncThrow=true)
CancellationToken _cancellationToken
bool WrapExceptionsForNetworkStream
void ThrowException(SocketError error, CancellationToken cancellationToken)
ExecutionContext _executionContext
void ThrowIncorrectTokenException()
override void OnCompleted(SocketAsyncEventArgs _)
void ThrowMultipleContinuationsException()
ValueTask SendPacketsAsync(Socket socket, CancellationToken cancellationToken)
ValueTask< int > ReceiveAsync(Socket socket, CancellationToken cancellationToken)
static readonly Action< object > s_completedSentinel
ValueTask SendAsyncForNetworkStream(Socket socket, CancellationToken cancellationToken)
ValueTask DisconnectAsync(Socket socket, CancellationToken cancellationToken)
ValueTask< SocketReceiveFromResult > ReceiveFromAsync(Socket socket, CancellationToken cancellationToken)
ValueTask< int > SendAsync(Socket socket, CancellationToken cancellationToken)
void OnCompleted(Action< object > continuation, object state, short token, ValueTaskSourceOnCompletedFlags flags)
ValueTaskSourceStatus GetStatus(short token)
ValueTask< Socket > AcceptAsync(Socket socket, CancellationToken cancellationToken)
AwaitableSocketAsyncEventArgs(Socket owner, bool isReceiveForCaching)
ValueTask< int > SendToAsync(Socket socket, CancellationToken cancellationToken)
ValueTask< SocketReceiveMessageFromResult > ReceiveMessageFromAsync(Socket socket, CancellationToken cancellationToken)
void InvokeContinuation(Action< object > continuation, object state, bool forceAsync, bool requiresExecutionContextFlow)
Action< object > _continuation
ValueTask ConnectAsync(Socket socket)
readonly IPEndPoint IPEndPoint
CachedSerializedEndPoint(IPAddress address)
readonly System.Net.Internals.SocketAddress SocketAddress
AsyncTaskMethodBuilder< TResult > _builder
bool _wrapExceptionsInIOExceptions
TaskSocketAsyncEventArgs()
AsyncTaskMethodBuilder< TResult > GetCompletionResponsibility(out bool responsibleForReturningToPool)
Task< Socket > AcceptAsync(Socket? acceptSocket)
static void CompleteSendReceive(Socket s, TaskSocketAsyncEventArgs< int > saea, bool isReceive)
IAsyncResult? BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback? callback, object? state)
System.Net.Internals.SocketAddress Serialize(ref EndPoint remoteEP)
void UpdateAcceptSocketErrorForDisposed(ref SocketError socketError)
void Connect(IPAddress address, int port)
void SetLingerOption(LingerOption lref)
int Receive(IList< ArraySegment< byte > > buffers)
void ValidateReceiveFromEndpointAndState(EndPoint remoteEndPoint, string remoteEndPointArgumentName)
int Send(byte[] buffer, int size, SocketFlags socketFlags)
bool SendPacketsAsync(SocketAsyncEventArgs e)
static bool OSSupportsUnixDomainSockets
void SetMulticastOption(SocketOptionName optionName, MulticastOption MR)
IAsyncResult BeginConnect(EndPoint remoteEP, AsyncCallback? callback, object? state)
int Send(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags)
static bool OSSupportsIPv6
void SetIPv6MulticastOption(SocketOptionName optionName, IPv6MulticastOption MR)
int EndSendTo(IAsyncResult asyncResult)
bool DisconnectAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
void SendFileInternal(string fileName, ReadOnlySpan< byte > preBuffer, ReadOnlySpan< byte > postBuffer, TransmitFileOptions flags)
unsafe void LoadSocketTypeFromHandle(SafeSocketHandle handle, out AddressFamily addressFamily, out SocketType socketType, out ProtocolType protocolType, out bool blocking, out bool isListening, out bool isSocket)
bool ReceiveMessageFromAsync(SocketAsyncEventArgs e)
int EndReceive(IAsyncResult asyncResult)
static void GetIPProtocolInformation(AddressFamily addressFamily, System.Net.Internals.SocketAddress socketAddress, out bool isIPv4, out bool isIPv6)
IAsyncResult BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback? callback, object? state)
bool ReceiveFromAsync(SocketAsyncEventArgs e)
void DoBind(EndPoint endPointSnapshot, System.Net.Internals.SocketAddress socketAddress)
Socket(SocketType socketType, ProtocolType protocolType)
void EnableReuseUnicastPort()
ValueTask< Socket > AcceptAsync(Socket? acceptSocket, CancellationToken cancellationToken)
int Receive(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out SocketError errorCode)
Task< int > SendAsync(ArraySegment< byte > buffer, SocketFlags socketFlags)
IAsyncResult BeginReceive(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, AsyncCallback? callback, object? state)
TaskSocketAsyncEventArgs< int > _multiBufferSendEventArgs
int EndReceiveFrom(IAsyncResult asyncResult, ref EndPoint endPoint)
void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue, bool silent)
static void SelectFileDescriptor(IList socketList, Span< IntPtr > fileDescriptorSet, ref int refsAdded)
static CachedSerializedEndPoint s_cachedMappedAnyV6EndPoint
unsafe bool TransmitPackets(SafeSocketHandle socketHandle, IntPtr packetArray, int elementCount, int sendSize, NativeOverlapped *overlapped, TransmitFileOptions flags)
ValueTask ConnectAsync(string host, int port, CancellationToken cancellationToken)
ValueTask ConnectAsync(IPAddress address, int port, CancellationToken cancellationToken)
void Disconnect(bool reuseSocket)
unsafe bool ConnectEx(SafeSocketHandle socketHandle, IntPtr socketAddress, int socketAddressSize, IntPtr buffer, int dataLength, out int bytesSent, NativeOverlapped *overlapped)
unsafe bool DisconnectEx(SafeSocketHandle socketHandle, NativeOverlapped *overlapped, int flags, int reserved)
ValueTask ConnectAsync(EndPoint remoteEP, CancellationToken cancellationToken)
static SocketError GetSocketErrorFromFaultedTask(Task t)
SocketError InternalSetBlocking(bool desired, out bool current)
Task ConnectAsync(IPAddress[] addresses, int port)
static void SocketListToFileDescriptorSet(IList socketList, Span< IntPtr > fileDescriptorSet, ref int refsAdded)
static void SocketListDangerousReleaseRefs(IList socketList, ref int refsAdded)
IAsyncResult BeginReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP, AsyncCallback? callback, object? state)
int Receive(byte[] buffer)
bool _nonBlockingConnectInProgress
ValueTask SendFileAsync(string? fileName, CancellationToken cancellationToken=default(CancellationToken))
int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode)
void UpdateSendSocketErrorForDisposed(ref SocketError socketError)
unsafe bool AcceptEx(SafeSocketHandle listenSocketHandle, SafeSocketHandle acceptSocketHandle, IntPtr buffer, int len, int localAddressLength, int remoteAddressLength, out int bytesReceived, NativeOverlapped *overlapped)
Task< int > ReceiveAsync(ArraySegment< byte > buffer, SocketFlags socketFlags)
virtual void Dispose(bool disposing)
int EndSendReceive(IAsyncResult asyncResult, out SocketError errorCode)
void DisposeCachedTaskSocketAsyncEventArgs()
int Send(ReadOnlySpan< byte > buffer, SocketFlags socketFlags, out SocketError errorCode)
ValueTask< SocketReceiveFromResult > ReceiveFromAsync(Memory< byte > buffer, SocketFlags socketFlags, EndPoint remoteEndPoint, CancellationToken cancellationToken=default(CancellationToken))
bool IsWildcardEndPoint(EndPoint endPoint)
unsafe? EndPoint LocalEndPoint
static bool OSSupportsIPv4
void ReplaceHandleIfNecessaryAfterFailedConnect()
TaskSocketAsyncEventArgs< int > _multiBufferReceiveEventArgs
Task ConnectAsync(EndPoint remoteEP)
ValueTask< SocketReceiveMessageFromResult > ReceiveMessageFromAsync(Memory< byte > buffer, SocketFlags socketFlags, EndPoint remoteEndPoint, CancellationToken cancellationToken=default(CancellationToken))
int Send(ReadOnlySpan< byte > buffer, SocketFlags socketFlags)
void EndDisconnect(IAsyncResult asyncResult)
int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode)
bool SendAsync(SocketAsyncEventArgs e)
int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref SocketFlags socketFlags, ref EndPoint remoteEP, out IPPacketInformation ipPacketInformation)
void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
int ReceiveMessageFrom(Span< byte > buffer, ref SocketFlags socketFlags, ref EndPoint remoteEP, out IPPacketInformation ipPacketInformation)
void GetAcceptExSockaddrs(IntPtr buffer, int receiveDataLength, int localAddressLength, int remoteAddressLength, out IntPtr localSocketAddress, out int localSocketAddressLength, out IntPtr remoteSocketAddress, out int remoteSocketAddressLength)
int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags)
void SendFile(string? fileName, ReadOnlySpan< byte > preBuffer, ReadOnlySpan< byte > postBuffer, TransmitFileOptions flags)
static SafeSocketHandle ValidateHandle(SafeSocketHandle handle)
Socket UpdateAcceptSocket(Socket socket, EndPoint remoteEP)
byte[] GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength)
int EndReceiveMessageFrom(IAsyncResult asyncResult, ref SocketFlags socketFlags, ref EndPoint endPoint, out IPPacketInformation ipPacketInformation)
Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
void UpdateReceiveSocketErrorForDisposed(ref SocketError socketError, int bytesTransferred)
int ReceiveFrom(byte[] buffer, int size, SocketFlags socketFlags, ref EndPoint remoteEP)
unsafe SocketError WSARecvMsgBlocking(SafeSocketHandle socketHandle, IntPtr msg, out int bytesTransferred)
Socket(SafeSocketHandle handle)
Task< SocketReceiveFromResult > ReceiveFromAsync(ArraySegment< byte > buffer, SocketFlags socketFlags, EndPoint remoteEndPoint)
int EndSend(IAsyncResult asyncResult)
ValueTask< int > ReceiveAsync(Memory< byte > buffer, SocketFlags socketFlags, bool fromNetworkStream, CancellationToken cancellationToken)
IAsyncResult BeginConnect(IPAddress address, int port, AsyncCallback? requestCallback, object? state)
int Receive(Span< byte > buffer)
static void ValidateBufferArguments(byte[] buffer, int offset, int size)
bool ReceiveMessageFromAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
LingerOption GetLingerOpt()
AwaitableSocketAsyncEventArgs _singleBufferReceiveEventArgs
bool AcceptAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
int ReceiveFrom(Span< byte > buffer, ref EndPoint remoteEP)
bool ReceiveAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
void ValidateBlockingMode()
int SendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP)
void SendFile(string? fileName, byte[]? preBuffer, byte[]? postBuffer, TransmitFileOptions flags)
int ReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP)
ValueTask SendFileAsync(string? fileName, ReadOnlyMemory< byte > preBuffer, ReadOnlyMemory< byte > postBuffer, TransmitFileOptions flags, CancellationToken cancellationToken=default(CancellationToken))
int IOControl(int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue)
bool ReceiveFromAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
void Bind(EndPoint localEP)
ValueTask< int > SendAsync(ReadOnlyMemory< byte > buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
IAsyncResult BeginSendFile(string? fileName, byte[]? preBuffer, byte[]? postBuffer, TransmitFileOptions flags, AsyncCallback? callback, object? state)
int Receive(Span< byte > buffer, SocketFlags socketFlags, out SocketError errorCode)
IAsyncResult BeginAccept(int receiveSize, AsyncCallback? callback, object? state)
Socket EndAccept(IAsyncResult asyncResult)
Task< int > ReceiveAsync(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags)
int SendTo(byte[] buffer, int size, SocketFlags socketFlags, EndPoint remoteEP)
ValueTask< int > SendToAsync(ReadOnlyMemory< byte > buffer, SocketFlags socketFlags, EndPoint remoteEP, CancellationToken cancellationToken=default(CancellationToken))
void SetReceivingPacketInformation()
void SendFile(string? fileName)
AddressFamily _addressFamily
Task< Socket > AcceptAsync()
void Connect(EndPoint remoteEP)
void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, bool optionValue)
int Receive(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags)
bool IsConnectionOriented
Task ConnectAsync(string host, int port)
static bool ConnectAsync(SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e)
void WildcardBindForConnectIfNecessary(AddressFamily addressFamily)
int Receive(byte[] buffer, int size, SocketFlags socketFlags)
void InternalSetBlocking(bool desired)
unsafe SocketError WSARecvMsg(SafeSocketHandle socketHandle, IntPtr msg, out int bytesTransferred, NativeOverlapped *overlapped, IntPtr completionRoutine)
void SetIPProtectionLevel(IPProtectionLevel level)
EndPoint _pendingConnectRightEndPoint
ValueTask ConnectAsync(IPAddress[] addresses, int port, CancellationToken cancellationToken)
int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags)
Task< int > ReceiveAsync(ArraySegment< byte > buffer, SocketFlags socketFlags, bool fromNetworkStream)
IAsyncResult BeginReceiveMessageFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP, AsyncCallback? callback, object? state)
ValueTask< int > ReceiveAsync(Memory< byte > buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
AwaitableSocketAsyncEventArgs _singleBufferSendEventArgs
bool ReceiveAsync(SocketAsyncEventArgs e)
void SetRawSocketOption(int optionLevel, int optionName, ReadOnlySpan< byte > optionValue)
unsafe Socket(SafeSocketHandle handle, bool loadPropertiesFromHandle)
bool SendToAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
void DoConnect(EndPoint endPointSnapshot, System.Net.Internals.SocketAddress socketAddress)
ProtocolType _protocolType
IAsyncResult BeginAccept(Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state)
SafeSocketHandle InternalSafeHandle
static readonly IPAddress s_IPAddressAnyMapToIPv6
IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback? callback, object? state)
bool ConnectAsync(SocketAsyncEventArgs e, bool userSocket, bool saeaCancelable)
int IOControl(IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue)
Socket CreateAcceptSocket(SafeSocketHandle fd, EndPoint remoteEP)
IAsyncResult? BeginSend(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback? callback, object? state)
static CachedSerializedEndPoint s_cachedAnyEndPoint
object? GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName)
ThreadPoolBoundHandle GetOrAllocateThreadPoolBoundHandleSlow()
int ReceiveFrom(byte[] buffer, SocketFlags socketFlags, ref EndPoint remoteEP)
static void ValidateBuffersList(IList< ArraySegment< byte > > buffers)
int Send(byte[] buffer, SocketFlags socketFlags)
bool _receivingPacketInformation
Socket EndAccept(out byte[] buffer, IAsyncResult asyncResult)
void UpdateStatusAfterSocketErrorAndThrowException(SocketError error, [CallerMemberName] string callerName=null)
Task< int > GetTaskForSendReceive(bool pending, TaskSocketAsyncEventArgs< int > saea, bool fromNetworkStream, bool isReceive)
int EndSend(IAsyncResult asyncResult, out SocketError errorCode)
static int GetAddressSize(EndPoint endPoint)
bool Poll(int microSeconds, SelectMode mode)
void Connect(IPAddress[] addresses, int port)
IAsyncResult BeginConnect(string host, int port, AsyncCallback? requestCallback, object? state)
bool SendPacketsAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
int EndReceive(IAsyncResult asyncResult, out SocketError errorCode)
ValueTask SendAsyncForNetworkStream(ReadOnlyMemory< byte > buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
int Send(IList< ArraySegment< byte > > buffers)
unsafe Socket(SocketInformation socketInformation)
void InternalShutdown(SocketShutdown how)
IAsyncResult BeginSend(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, AsyncCallback? callback, object? state)
int GetRawSocketOption(int optionLevel, int optionName, Span< byte > optionValue)
IPv6MulticastOption GetIPv6MulticastOpt(SocketOptionName optionName)
int ReceiveFrom(Span< byte > buffer, SocketFlags socketFlags, ref EndPoint remoteEP)
int SendTo(ReadOnlySpan< byte > buffer, SocketFlags socketFlags, EndPoint remoteEP)
MulticastOption GetMulticastOpt(SocketOptionName optionName)
void UpdateLocalEndPointOnConnect()
DynamicWinsockMethods _dynamicWinsockMethods
int SendTo(ReadOnlySpan< byte > buffer, EndPoint remoteEP)
int Receive(byte[] buffer, SocketFlags socketFlags)
void EndSendFile(IAsyncResult asyncResult)
int SendTo(byte[] buffer, SocketFlags socketFlags, EndPoint remoteEP)
void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, object optionValue)
void UpdateStatusAfterSocketError(SocketException socketException)
int SendTo(byte[] buffer, EndPoint remoteEP)
SocketInformation DuplicateAndClose(int targetProcessId)
static SafeFileHandle OpenFileHandle(string name)
Task< int > SendAsync(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags)
IAsyncResult? BeginReceive(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback? callback, object? state)
IAsyncResult BeginConnect(IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state)
void Shutdown(SocketShutdown how)
bool AcceptAsync(SocketAsyncEventArgs e)
async Task<(Socket s, byte[] buffer, int bytesReceived)> AcceptAndReceiveHelperAsync(Socket acceptSocket, int receiveSize)
IAsyncResult BeginAccept(AsyncCallback? callback, object? state)
Task< int > SendToAsync(ArraySegment< byte > buffer, SocketFlags socketFlags, EndPoint remoteEP)
Socket GetOrCreateAcceptSocket(Socket acceptSocket, bool checkDisconnected, string propertyName, out SafeSocketHandle handle)
unsafe bool DisconnectExBlocking(SafeSocketHandle socketHandle, int flags, int reserved)
IAsyncResult? BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback? callback, object? state)
int Send(ReadOnlySpan< byte > buffer)
int ReceiveFrom(byte[] buffer, ref EndPoint remoteEP)
static void Select(IList? checkRead, IList? checkWrite, IList? checkError, int microSeconds)
bool SendToAsync(SocketAsyncEventArgs e)
void GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
bool SendAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)
LingerOption? LingerState
ValueTask DisconnectAsync(bool reuseSocket, CancellationToken cancellationToken=default(CancellationToken))
ValueTask< Socket > AcceptAsync(CancellationToken cancellationToken)
void ReturnSocketAsyncEventArgs(TaskSocketAsyncEventArgs< int > saea, bool isReceive)
static void ValidateBuffer(ArraySegment< byte > buffer)
void UpdateStatusAfterSocketError(SocketError errorCode)
static void CancelConnectAsync(SocketAsyncEventArgs e)
IAsyncResult BeginSendFile(string? fileName, AsyncCallback? callback, object? state)
void ThrowObjectDisposedException()
Socket EndAccept(out byte[] buffer, out int bytesTransferred, IAsyncResult asyncResult)
bool DisconnectAsync(SocketAsyncEventArgs e)
IAsyncResult BeginSendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback? callback, object? state)
Task< SocketReceiveMessageFromResult > ReceiveMessageFromAsync(ArraySegment< byte > buffer, SocketFlags socketFlags, EndPoint remoteEndPoint)
static CachedSerializedEndPoint s_cachedAnyV6EndPoint
DynamicWinsockMethods GetDynamicWinsockMethods()
void Connect(string host, int port)
static Exception GetException(SocketError error, bool wrapExceptionsInIOExceptions=false)
bool CheckErrorAndUpdateStatus(SocketError errorCode)
bool CanTryAddressFamily(AddressFamily family)
IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback? callback, object? state)
void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue)
int Send(IList< ArraySegment< byte > > buffers, SocketFlags socketFlags, out SocketError errorCode)
int Receive(Span< byte > buffer, SocketFlags socketFlags)
ThreadPoolBoundHandle GetOrAllocateThreadPoolBoundHandle()
Task ConnectAsync(IPAddress address, int port)
bool ConnectAsync(SocketAsyncEventArgs e)
void EndConnect(IAsyncResult asyncResult)
void UpdateConnectSocketErrorForDisposed(ref SocketError socketError)
static readonly SocketsTelemetry Log
static bool ValidatePortNumber(int port)
static ExceptionDispatchInfo Capture(Exception source)
static Exception SetCurrentStackTrace(Exception source)
IntPtr DangerousGetHandle()
static string net_sockets_invalid_dnsendpoint
static string net_sockets_mustlisten
static string net_invalidversion
static string net_invalidAddressList
static string net_sockets_invalid_optionValue
static string net_sockets_valuetaskmisuse
static string InvalidNullArgument
static string net_sockets_namedmustnotbebound
static string net_io_readfailure
static string net_sockets_invalid_optionValue_all
static string Arg_InvalidHandle
static string Format(string resourceFormat, object p1)
static string net_multibuffernotsupported
static string net_sockets_invalid_ipaddress_length
static string net_sockets_empty_select
static string net_notconnected
static string net_io_writefailure
static string net_sockets_mustnotlisten
static string InvalidOperation_IncorrectToken
static string net_sockets_mustbind
static string net_sockets_disconnectedAccept
static string net_sockets_disconnectedConnect
static string InvalidOperation_MultipleContinuations
static string net_sockets_mustnotbebound
static string net_sockets_invalid_socketinformation
static string net_invasync
static string ArgumentOutOfRange_Bounds_Lower_Upper_Named
static string net_sockets_zerolist
static string net_InvalidEndPointAddressFamily
static string net_io_readwritefailure
static string net_sockets_toolarge_select
static string net_sockets_select
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 ? SynchronizationContext Current
static TaskScheduler Current
static TaskScheduler Default
static Task GetTask(IAsyncResult asyncResult)
static IAsyncResult Begin(Task task, AsyncCallback callback, object state)
static void End(IAsyncResult asyncResult)
static new TaskFactory< TResult > Factory
static Task FromException(Exception exception)
AggregateException? Exception
static bool QueueUserWorkItem(WaitCallback callBack)
static bool UnsafeQueueUserWorkItem(WaitCallback callBack, object? state)
void GetResult(short token)
ValueTaskSourceOnCompletedFlags
static readonly IntPtr Zero
static CancellationToken None
static ValueTask CompletedTask
static ValueTask FromCanceled(CancellationToken cancellationToken)
static ValueTask FromException(Exception exception)