public static TryCompleteReceiveFrom ( SafeCloseSocket socket, byte buffer, IList |
||
socket | SafeCloseSocket | |
buffer | byte | |
buffers | IList |
|
offset | int | |
count | int | |
flags | SocketFlags | |
socketAddress | byte | |
socketAddressLen | int | |
bytesReceived | int | |
receivedFlags | SocketFlags | |
errorCode | SocketError | |
return | bool |
public static unsafe bool TryCompleteReceiveFrom(SafeCloseSocket socket, byte[] buffer, IList<ArraySegment<byte>> buffers, int offset, int count, SocketFlags flags, byte[] socketAddress, ref int socketAddressLen, out int bytesReceived, out SocketFlags receivedFlags, out SocketError errorCode)
{
try
{
Interop.Error errno;
int received;
if (buffers != null)
{
Debug.Assert(buffer == null);
received = Receive(socket, flags, buffers, socketAddress, ref socketAddressLen, out receivedFlags, out errno);
}
else
{
received = Receive(socket, flags, buffer, offset, count, socketAddress, ref socketAddressLen, out receivedFlags, out errno);
}
if (received != -1)
{
bytesReceived = received;
errorCode = SocketError.Success;
return true;
}
bytesReceived = 0;
if (errno != Interop.Error.EAGAIN && errno != Interop.Error.EWOULDBLOCK)
{
errorCode = GetSocketErrorForErrorCode(errno);
return true;
}
errorCode = SocketError.Success;
return false;
}
catch (ObjectDisposedException)
{
// The socket was closed, or is closing.
bytesReceived = 0;
receivedFlags = 0;
errorCode = SocketError.OperationAborted;
return true;
}
}
SocketPal::TryCompleteReceiveFrom ( SafeCloseSocket socket, IList |
|
SocketPal::TryCompleteReceiveFrom ( SafeCloseSocket socket, byte buffer, int offset, int count, SocketFlags flags, byte socketAddress, int &socketAddressLen, int &bytesReceived, SocketFlags &receivedFlags, SocketError &errorCode ) : bool |