Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FinishOperationAccept()

unsafe SocketError System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAccept ( System::Net::Internals::SocketAddress remoteSocketAddress)
inlineprivateinherited

Definition at line 1693 of file SocketAsyncEventArgs.cs.

1694 {
1695 bool success = false;
1697 SocketError socketError;
1698 try
1699 {
1700 safeHandle.DangerousAddRef(ref success);
1701 IntPtr pointer = safeHandle.DangerousGetHandle();
1702 bool flag = _count != 0;
1704 fixed (byte* ptr = &MemoryMarshal.GetReference(memory.Span))
1705 {
1708 }
1709 socketError = global::Interop.Winsock.setsockopt(_acceptSocket.SafeHandle, SocketOptionLevel.Socket, SocketOptionName.UpdateAcceptContext, ref pointer, IntPtr.Size);
1710 if (socketError == SocketError.SocketError)
1711 {
1712 socketError = SocketPal.GetLastSocketError();
1713 }
1714 }
1715 catch (ObjectDisposedException)
1716 {
1717 socketError = SocketError.OperationAborted;
1718 }
1719 finally
1720 {
1721 if (success)
1722 {
1723 safeHandle.DangerousRelease();
1724 }
1725 }
1726 return socketError;
1727 }
SafeSocketHandle SafeHandle
Definition Socket.cs:685
void GetAcceptExSockaddrs(IntPtr buffer, int receiveDataLength, int localAddressLength, int remoteAddressLength, out IntPtr localSocketAddress, out int localSocketAddressLength, out IntPtr remoteSocketAddress, out int remoteSocketAddressLength)
Definition Socket.cs:4458
static void Copy(int[] source, int startIndex, IntPtr destination, int length)
Definition Marshal.cs:800

References System.Net.Sockets.SocketAsyncEventArgs._acceptAddressBufferCount, System.Net.Sockets.SocketAsyncEventArgs._acceptBuffer, System.Net.Sockets.SocketAsyncEventArgs._acceptSocket, System.Net.Sockets.SocketAsyncEventArgs._buffer, System.Net.Sockets.SocketAsyncEventArgs._count, System.Net.Sockets.SocketAsyncEventArgs._currentSocket, System.Net.Sockets.SocketAsyncEventArgs._offset, System.Runtime.InteropServices.Marshal.Copy(), System.Net.Sockets.Socket.GetAcceptExSockaddrs(), System.Net.Sockets.SocketPal.GetLastSocketError(), System.pointer, System.Net.Sockets.Socket.SafeHandle, and System.IntPtr.Size.

Referenced by System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSyncSuccess().