public int Send(byte[] buffer, int size, int flags)
{
if (LibXs.xs_msg_init_size(_message, size) == -1)
{
return -1;
}
if (size > 0)
{
Marshal.Copy(buffer, 0, LibXs.xs_msg_data(_message), size);
}
int bytesSent = RetryIfInterrupted(() => LibXs.xs_sendmsg(SocketHandle, _message, flags));
if (LibXs.xs_msg_close(_message) == -1)
{
return -1;
}
return bytesSent;
}