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

◆ ReceiveFrom() [6/6]

int System.Net.Sockets.Socket.ReceiveFrom ( Span< byte > buffer,
SocketFlags socketFlags,
ref EndPoint remoteEP )
inline

Definition at line 2067 of file Socket.cs.

2068 {
2071 SocketPal.CheckDualModeReceiveSupport(this);
2073 EndPoint remoteEP2 = remoteEP;
2075 System.Net.Internals.SocketAddress socketAddress2 = IPEndPointExtensions.Serialize(remoteEP2);
2076 int bytesTransferred;
2077 SocketError socketError = SocketPal.ReceiveFrom(_handle, buffer, socketFlags, socketAddress.Buffer, ref socketAddress.InternalSize, out bytesTransferred);
2079 SocketException ex = null;
2080 if (socketError != 0)
2081 {
2082 ex = new SocketException((int)socketError);
2084 if (System.Net.NetEventSource.Log.IsEnabled())
2085 {
2086 System.Net.NetEventSource.Error(this, ex, "ReceiveFrom");
2087 }
2088 if (ex.SocketErrorCode != SocketError.MessageSize)
2089 {
2090 throw ex;
2091 }
2092 }
2093 else if (SocketsTelemetry.Log.IsEnabled())
2094 {
2095 SocketsTelemetry.Log.BytesReceived(bytesTransferred);
2096 if (SocketType == SocketType.Dgram)
2097 {
2098 SocketsTelemetry.Log.DatagramReceived();
2099 }
2100 }
2101 if (!socketAddress2.Equals(socketAddress))
2102 {
2103 try
2104 {
2105 remoteEP = remoteEP2.Create(socketAddress);
2106 }
2107 catch
2108 {
2109 }
2110 if (_rightEndPoint == null)
2111 {
2113 }
2114 }
2115 if (ex != null)
2116 {
2117 throw ex;
2118 }
2119 return bytesTransferred;
2120 }
static readonly System.Net.NetEventSource Log
static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName=null)
System.Net.Internals.SocketAddress Serialize(ref EndPoint remoteEP)
Definition Socket.cs:3225
void ValidateReceiveFromEndpointAndState(EndPoint remoteEndPoint, string remoteEndPointArgumentName)
Definition Socket.cs:3757
void UpdateReceiveSocketErrorForDisposed(ref SocketError socketError, int bytesTransferred)
Definition Socket.cs:3790
SafeSocketHandle _handle
Definition Socket.cs:533
void UpdateStatusAfterSocketError(SocketException socketException)
Definition Socket.cs:3726

References System.Net.Sockets.Socket._handle, System.Net.Sockets.Socket._rightEndPoint, System.Net.Internals.SocketAddress.Buffer, System.buffer, System.Net.Sockets.SocketPal.CheckDualModeReceiveSupport(), System.Net.NetEventSource.Error(), System.Net.Internals.SocketAddress.InternalSize, System.Net.NetEventSource.Log, System.Net.Sockets.SocketsTelemetry.Log, System.Net.Sockets.SocketPal.ReceiveFrom(), System.Net.Sockets.IPEndPointExtensions.Serialize(), System.Net.Sockets.Socket.Serialize(), System.Net.Sockets.Socket.ThrowIfDisposed(), System.Net.Sockets.Socket.UpdateReceiveSocketErrorForDisposed(), System.Net.Sockets.Socket.UpdateStatusAfterSocketError(), System.Net.Sockets.Socket.ValidateBlockingMode(), and System.Net.Sockets.Socket.ValidateReceiveFromEndpointAndState().