private static Send ( SafeCloseSocket socket, SocketFlags flags, byte buffer, int &offset, int &count, byte socketAddress, int socketAddressLen, System.Net.Interop &errno ) : int | ||
socket | SafeCloseSocket | |
flags | SocketFlags | |
buffer | byte | |
offset | int | |
count | int | |
socketAddress | byte | |
socketAddressLen | int | |
errno | System.Net.Interop | |
return | int |
private static unsafe int Send(SafeCloseSocket socket, SocketFlags flags, byte[] buffer, ref int offset, ref int count, byte[] socketAddress, int socketAddressLen, out Interop.Error errno)
{
int sent;
int sockAddrLen = 0;
if (socketAddress != null)
{
sockAddrLen = socketAddressLen;
}
fixed (byte* sockAddr = socketAddress)
fixed (byte* b = buffer)
{
var iov = new Interop.Sys.IOVector {
Base = &b[offset],
Count = (UIntPtr)count
};
var messageHeader = new Interop.Sys.MessageHeader {
SocketAddress = sockAddr,
SocketAddressLen = sockAddrLen,
IOVectors = &iov,
IOVectorCount = 1
};
long bytesSent;
errno = Interop.Sys.SendMessage(socket, &messageHeader, flags, &bytesSent);
sent = checked((int)bytesSent);
}
if (errno != Interop.Error.SUCCESS)
{
return -1;
}
offset += sent;
count -= sent;
return sent;
}
SocketPal::Send ( SafeCloseSocket handle, IList |
|
SocketPal::Send ( SafeCloseSocket handle, byte buffer, int offset, int count, SocketFlags socketFlags, int &bytesTransferred ) : SocketError | |
SocketPal::Send ( SafeCloseSocket socket, SocketFlags flags, IList |