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

◆ ReceiveMessageFrom() [2/2]

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

Definition at line 1925 of file Socket.cs.

1926 {
1928 if (remoteEP == null)
1929 {
1930 throw new ArgumentNullException("remoteEP");
1931 }
1932 if (!CanTryAddressFamily(remoteEP.AddressFamily))
1933 {
1935 }
1936 if (_rightEndPoint == null)
1937 {
1939 }
1940 SocketPal.CheckDualModeReceiveSupport(this);
1942 EndPoint remoteEP2 = remoteEP;
1944 System.Net.Internals.SocketAddress socketAddress2 = IPEndPointExtensions.Serialize(remoteEP2);
1947 int bytesTransferred;
1948 SocketError socketError = SocketPal.ReceiveMessageFrom(this, _handle, buffer, ref socketFlags, socketAddress, out receiveAddress, out ipPacketInformation, out bytesTransferred);
1950 if (socketError != 0 && socketError != SocketError.MessageSize)
1951 {
1953 }
1954 else if (SocketsTelemetry.Log.IsEnabled())
1955 {
1956 SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1957 if (socketError == SocketError.Success && SocketType == SocketType.Dgram)
1958 {
1959 SocketsTelemetry.Log.DatagramReceived();
1960 }
1961 }
1962 if (!socketAddress2.Equals(receiveAddress))
1963 {
1964 try
1965 {
1967 }
1968 catch
1969 {
1970 }
1971 if (_rightEndPoint == null)
1972 {
1974 }
1975 }
1976 if (System.Net.NetEventSource.Log.IsEnabled())
1977 {
1978 System.Net.NetEventSource.Error(this, socketError, "ReceiveMessageFrom");
1979 }
1980 return bytesTransferred;
1981 }
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 UpdateReceiveSocketErrorForDisposed(ref SocketError socketError, int bytesTransferred)
Definition Socket.cs:3790
void SetReceivingPacketInformation()
Definition Socket.cs:3450
SafeSocketHandle _handle
Definition Socket.cs:533
AddressFamily _addressFamily
Definition Socket.cs:555
void UpdateStatusAfterSocketErrorAndThrowException(SocketError error, [CallerMemberName] string callerName=null)
Definition Socket.cs:3715
bool CanTryAddressFamily(AddressFamily family)
Definition Socket.cs:1159
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_sockets_mustbind
Definition SR.cs:60
static string net_InvalidEndPointAddressFamily
Definition SR.cs:38
Definition SR.cs:7

References System.Net.Sockets.Socket._addressFamily, System.Net.Sockets.Socket._handle, System.Net.Sockets.Socket._rightEndPoint, System.buffer, System.Net.Sockets.Socket.CanTryAddressFamily(), System.Net.Sockets.SocketPal.CheckDualModeReceiveSupport(), System.Net.NetEventSource.Error(), System.SR.Format(), System.Net.NetEventSource.Log, System.Net.Sockets.SocketsTelemetry.Log, System.SR.net_InvalidEndPointAddressFamily, System.SR.net_sockets_mustbind, System.Net.Sockets.SocketPal.ReceiveMessageFrom(), System.Net.Sockets.IPEndPointExtensions.Serialize(), System.Net.Sockets.Socket.Serialize(), System.Net.Sockets.Socket.SetReceivingPacketInformation(), System.Net.Sockets.Socket.ThrowIfDisposed(), System.Net.Sockets.Socket.UpdateReceiveSocketErrorForDisposed(), System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(), and System.Net.Sockets.Socket.ValidateBlockingMode().