/// <summary> /// Transmit a byte-array of data over this socket, block until frame is sent. /// </summary> /// <param name="socket">the socket to transmit on</param> /// <param name="group">The group to send the message to.</param> /// <param name="data">the byte-array of data to send</param> /// <param name="length">the number of bytes to send from <paramref name="data"/>.</param> public static void Send(this IGroupOutSocket socket, string group, byte[] data, int length) { var msg = new Msg(); msg.InitPool(length); msg.Group = group; data.Slice(0, length).CopyTo(msg); socket.Send(ref msg); msg.Close(); }
/// <summary> /// Transmit a string over this socket, block until message is sent. /// </summary> /// <param name="socket">the socket to transmit on</param> /// <param name="group">The group to send the message to.</param> /// <param name="message">the string to send</param> public static void Send(this IGroupOutSocket socket, string group, string message) { var msg = new Msg(); // Count the number of bytes required to encode the string. // Note that non-ASCII strings may not have an equal number of characters // and bytes. The encoding must be queried for this answer. // With this number, request a buffer from the pool. msg.InitPool(SendReceiveConstants.DefaultEncoding.GetByteCount(message)); msg.Group = group; // Encode the string into the buffer SendReceiveConstants.DefaultEncoding.GetBytes(message, msg); socket.Send(ref msg); msg.Close(); }