6.96. kink/socket/UNIX_DOMAIN_SOCKET_PATH¶
6.96.1. unix_domain_socket_path型¶
unix_domain_socket_pathは、UNIXドメインソケットのパスを表す。
unix_domain_socket_pathはsocket_addressの部分型である。
例
:UNIX_DOMAIN_SOCKET_PATH.require_from('kink/socket/')
:PROTOCOL_FAMILY.require_from('kink/socket/')
:TCP.require_from('kink/socket/')
:TCP_SERVER.require_from('kink/socket/')
:BIN.require_from('kink/')
:CONTROL.require_from('kink/')
:Udsp <- UNIX_DOMAIN_SOCKET_PATH.new('foo.uds')
:spawn_client <- {
CONTROL.with_finally{(:finally)
:Tcp = TCP.open(PROTOCOL_FAMILY.unix)
finally{ Tcp.close }
Tcp.connect(Udsp)
:Out = Tcp.output
finally{ Out.close }
Out.write(BIN.of(1 2 3))
}
}
CONTROL.with_finally{(:finally)
:Serv = TCP_SERVER.open(PROTOCOL_FAMILY.unix)
finally{ Serv.close }
Serv.bind_listen(Udsp)
spawn_client
:Tcp = Serv.accept
finally{ Tcp.close }
:In = Tcp.input
finally{ In.close }
:Bin = In.read_all
stdout.print_line(Bin.repr) # => (bin 0x01 0x02 0x03)
}
6.96.1.1. Udsp.path¶
pathは、UNIXドメインソケットのファイルシステム上のパスを、str値で戻す。
6.96.1.2. Udsp.protocol_family¶
protocol_familyは、PROTOCOL_FAMILY.unixを戻す。
6.96.1.3. Udsp == Addr¶
== 演算子、つまりop_eqメソッドは、Addrがunix_domain_socket_pathの値であり、UdspとAddrのパスがstr型の == 演算子で等しい場合、またその場合に限ってtrueを戻す。
事前条件
Addrはsocket_addressでなければならない。
6.96.2. UNIX_DOMAIN_SOCKET_PATH.new(Path)¶
newはunix_domain_socket_pathを戻す。
事前条件
Pathはstrでなければならない。
6.96.3. UNIX_DOMAIN_SOCKET_PATH.is?(Val)¶
is?はValがunix_domain_socket_pathの値であるかどうかを戻す。