本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。