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

◆ ConnectAsync() [9/11]

static bool System.Net.Sockets.Socket.ConnectAsync ( SocketType socketType,
ProtocolType protocolType,
SocketAsyncEventArgs e )
inlinestatic

Definition at line 2904 of file Socket.cs.

2905 {
2906 if (e == null)
2907 {
2908 throw new ArgumentNullException("e");
2909 }
2910 if (e.HasMultipleBuffers)
2911 {
2913 }
2914 if (e.RemoteEndPoint == null)
2915 {
2916 throw new ArgumentException(System.SR.Format(System.SR.InvalidNullArgument, "e.RemoteEndPoint"), "e");
2917 }
2918 EndPoint remoteEndPoint = e.RemoteEndPoint;
2919 if (remoteEndPoint is DnsEndPoint dnsEndPoint)
2920 {
2921 Socket socket = ((dnsEndPoint.AddressFamily != 0) ? new Socket(dnsEndPoint.AddressFamily, socketType, protocolType) : null);
2922 e.StartOperationCommon(socket, SocketAsyncOperation.Connect);
2923 e.StartOperationConnect(saeaMultiConnectCancelable: true, userSocket: false);
2924 try
2925 {
2926 return e.DnsConnectAsync(dnsEndPoint, socketType, protocolType);
2927 }
2928 catch
2929 {
2930 e.Complete();
2931 throw;
2932 }
2933 }
2935 return socket2.ConnectAsync(e, userSocket: false, saeaCancelable: true);
2936 }
static string InvalidNullArgument
Definition SR.cs:86
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_multibuffernotsupported
Definition SR.cs:88
Definition SR.cs:7

References System.Net.Sockets.SocketAsyncEventArgs.Complete(), System.Net.Sockets.SocketAsyncEventArgs.DnsConnectAsync(), System.SR.Format(), System.Net.Sockets.SocketAsyncEventArgs.HasMultipleBuffers, System.SR.InvalidNullArgument, System.SR.net_multibuffernotsupported, System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint, System.Net.Sockets.Socket, System.Net.Sockets.SocketAsyncEventArgs.StartOperationCommon(), and System.Net.Sockets.SocketAsyncEventArgs.StartOperationConnect().