本文简要介绍ruby语言中 BasicSocket.sendmsg
的用法。
用法
sendmsg(mesg, flags=0, dest_sockaddr=nil, *controls) → numbytes_sent
sendmsg 使用 sendmsg(2) 系统调用以阻塞方式发送消息。
mesg
是要发送的字符串。
flags
是 MSG_* 常量的按位或,例如 Socket::MSG_OOB。
dest_sockaddr
是connection-less 套接字的目标套接字地址。它应该是一个 sockaddr,例如 Socket.sockaddr_in
的结果。也可以使用 Addrinfo
对象。
controls
是辅助数据列表。 controls
的元素应该是 Socket::AncillaryData
或三元素数组。 3 元素数组应包含cmsg_level、cmsg_type 和数据。
返回值 numbytes_sent
是一个整数,它是发送的字节数。
sendmsg 可用于实现send_io,如下所示:
# use Socket::AncillaryData.
ancdata = Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, io.fileno)
sock.sendmsg("a", 0, nil, ancdata)
# use 3-element array.
ancdata = [:SOCKET, :RIGHTS, [io.fileno].pack("i!")]
sock.sendmsg("\0", 0, nil, ancdata)
相关用法
- Ruby BasicSocket.send用法及代码示例
- Ruby BasicSocket.setsockopt用法及代码示例
- Ruby BasicSocket.shutdown用法及代码示例
- Ruby BasicSocket.remote_address用法及代码示例
- Ruby BasicSocket.recv用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup =用法及代码示例
- Ruby BasicSocket.connect_address用法及代码示例
- Ruby BasicSocket.recv_nonblock用法及代码示例
- Ruby BasicSocket.recvmsg用法及代码示例
- Ruby BasicSocket.getsockopt用法及代码示例
- Ruby BasicSocket.getpeereid用法及代码示例
- Ruby BasicSocket.local_address用法及代码示例
- Ruby BasicSocket.close_read用法及代码示例
- Ruby BasicSocket.getpeername用法及代码示例
- Ruby BasicSocket.getsockname用法及代码示例
- Ruby BasicSocket.close_write用法及代码示例
- Ruby BasicSocket.for_fd用法及代码示例
- Ruby BasicSpecification.require_paths用法及代码示例
- Ruby BasicObject.equal?用法及代码示例
- Ruby BasicObject.instance_eval用法及代码示例
- Ruby BasicObject.obj ==用法及代码示例
- Ruby BasicObject.method_missing用法及代码示例
- Ruby BasicObject.singleton_method_undefined用法及代码示例
- Ruby BasicObject.send用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 BasicSocket.sendmsg。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。