class UNIXSocket
Overview
A local interprocess communication (UNIX socket) client socket.
Only available on UNIX and UNIX-like operating systems.
Usage example:
require "socket"
UNIXSocket.open("/tmp/myapp.sock") do |socket|
socket.puts "message"
response = socket.gets
end
Defined in:
socket/unix_socket.crConstructors
-
.new(raw : Socket::Raw, address : Socket::UNIXAddress)
Creates a
UNIXServerfrom a raw socket. -
.new(address : Socket::UNIXAddress) : UNIXSocket
Connects a named UNIX socket, bound to a filesystem pathname.
-
.new(path : String) : UNIXSocket
Connects a named UNIX socket, bound to a filesystem pathname.
Class Method Summary
-
.open(path : Socket::UNIXAddress | String, &block : UNIXSocket -> )
Connects a named UNIX socket, bound to a filesystem pathname and yields it to the block.
-
.pair : Tuple(UNIXSocket, UNIXSocket)
Returns a pair of unamed UNIX sockets.
-
.pair(&block : UNIXSocket, UNIXSocket -> )
Creates a pair of unamed UNIX sockets (see
.pair) and yields them to the block.
Instance Method Summary
-
#close : Nil
Closes this socket.
-
#close_read : Nil
Closes this socket for reading.
-
#close_write : Nil
Closes this socket for writing.
-
#closed? : Bool
Returns
trueif this socket is closed. - #flush
-
#local_address : Socket::UNIXAddress
Returns the
UNIXAddressfor the local end of the UNIX socket. -
#local_address? : Socket::UNIXAddress?
Returns the
UNIXAddressfor the local end of the UNIX socket, ornilif the socket is closed. - #peek
-
#raw : Socket::Raw
Returns the raw socket wrapped by this UNIX socket.
- #read(slice : Bytes) : Int32
- #read_buffering=(read_buffering)
- #read_buffering?
-
#read_timeout : Time::Span?
Returns the read timeout for this socket.
-
#read_timeout=(timeout : Time::Span | Number?)
Sets the read timeout for this socket.
-
#recv_buffer_size : Int32
Returns the receive buffer size for this socket.
-
#recv_buffer_size=(value : Int32) : Int32
Sets the receive buffer size for this socket.
-
#remote_address : Socket::UNIXAddress
Returns the
UNIXAddressfor the remote end of the UNIX socket. -
#remote_address? : Socket::UNIXAddress?
Returns the
UNIXAddressfor the remote end of the UNIX socket, ornilif the socket is closed. -
#send_buffer_size : Int32
Returns the send buffer size for this socket.
-
#send_buffer_size=(value : Int32) : Int32
Sets the send buffer size for this socket.
- #sync=(value : Bool) : Bool
- #sync? : Bool
- #write(slice : Bytes) : Nil
-
#write_timeout : Time::Span?
Returns the write timeout for this socket.
-
#write_timeout=(timeout : Time::Span | Number?)
Sets the write timeout for this socket.
Instance methods inherited from class IO
<<(obj) : self
<<,
close
close,
closed?
closed?,
each_byte(&block) : Nileach_byte each_byte, each_char(&block) : Nil
each_char each_char, each_line(*args, **options, &block) : Nil
each_line(*args, **options) each_line, encoding : String encoding, flush flush, gets(delimiter : Char, limit : Int, chomp = false) : String?
gets(delimiter : Char, chomp = false) : String?
gets(chomp = true) : String?
gets(limit : Int, chomp = false) : String?
gets(delimiter : String, chomp = false) : String? gets, gets_to_end : String gets_to_end, peek : Bytes? peek, pos pos, pos=(value) pos=, print(*objects : _) : Nil
print(obj) : Nil print, printf(format_string, *args) : Nil
printf(format_string, args : Array | Tuple) : Nil printf, puts(*objects : _) : Nil
puts : Nil
puts(obj) : Nil
puts(string : String) : Nil puts, read(slice : Bytes) read, read_at(offset, bytesize, &block) read_at, read_byte : UInt8? read_byte, read_bytes(type, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) read_bytes, read_char : Char? read_char, read_fully(slice : Bytes) read_fully, read_fully?(slice : Bytes) read_fully?, read_line(*args, **options) : String read_line, read_string(bytesize : Int) : String read_string, read_utf8(slice : Bytes) read_utf8, read_utf8_byte read_utf8_byte, rewind rewind, seek(offset, whence : Seek = Seek::Set) seek, set_encoding(encoding : String, invalid : Symbol? = nil) set_encoding, skip(bytes_count : Int) : Nil skip, skip_to_end : Nil skip_to_end, tell tell, tty? : Bool tty?, write(slice : Bytes) : Nil write, write_byte(byte : UInt8) write_byte, write_bytes(object, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) write_bytes, write_utf8(slice : Bytes) write_utf8
Class methods inherited from class IO
copy(src, dst, limit : Int)copy(src, dst) copy, pipe(read_blocking = false, write_blocking = false) : Tuple(IO::FileDescriptor, IO::FileDescriptor)
pipe(read_blocking = false, write_blocking = false, &block) pipe
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash(hasher)
hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as
Constructor methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io : String | IO) : self from_yaml
Constructor Detail
Creates a UNIXServer from a raw socket.
Connects a named UNIX socket, bound to a filesystem pathname.
Connects a named UNIX socket, bound to a filesystem pathname.
Class Method Detail
Connects a named UNIX socket, bound to a filesystem pathname and yields it to the block.
The socket is closed after the block returns.
Returns the return value of the block.
Returns a pair of unamed UNIX sockets.
left, right = UNIXSocket.pair
spawn do
# echo server
message = right.gets
right.puts message
end
left.puts "message"
left.gets # => "message"
left.close
right.closeCreates a pair of unamed UNIX sockets (see .pair) and yields them to the
block.
Eventually closes both sockets when the block returns.
Returns the value of the block.
UNIXSocket.pair do |left, right|
spawn do
# echo server
message = right.gets
right.puts message
end
left.puts "message"
left.gets # => "message"
endInstance Method Detail
Returns the UNIXAddress for the local end of the UNIX socket.
Raises Socket::Error if the socket is closed.
Returns the UNIXAddress for the local end of the UNIX socket, or nil if
the socket is closed.
Sets the read timeout for this socket.
Sets the receive buffer size for this socket.
Returns the UNIXAddress for the remote end of the UNIX socket.
Raises Socket::Error if the socket is closed.
Returns the UNIXAddress for the remote end of the UNIX socket, or nil if
the socket is closed.
Sets the send buffer size for this socket.
Sets the write timeout for this socket.