Socket.Make
Create a Lwt socket from a
This is useful because some of the hypervisor sockets do not support select() or other methods of asynchronous I/O and we must therefore run the calls in background threads.
module Socket_family : Hvsock.Af_common.S
type sockaddr = Socket_family.sockaddr
A socket address
val string_of_sockaddr : sockaddr -> string
val create : unit -> t
create ()
creates an unbound hypervisorsocket
type fd = Socket_family.t
A low-level file descriptor
to_fd t
returns the wrapped file descriptor. Note this only supports blocking I/O
val listen : t -> int -> unit
listen t queue
connect ?timeout_ms t sockaddr
connects to a remote partition
val read : t -> Cstruct.t -> int Lwt.t
read t buf
reads as many bytes as available into buf
returning the number of bytes read.
val write : t -> Cstruct.t -> int Lwt.t
write t buf
writes as many bytes from buf
to t
as will currently fit inside t
's internal buffer, and return the number of bytes written
val close : t -> unit Lwt.t
close t
closes a socket
val shutdown_read : t -> unit Lwt.t
shutdown_read t
closes the read side of the socket
val shutdown_write : t -> unit Lwt.t
shutdown_write t
closes the write side of the socket