Hvsock.Socket
An interface for hypervisor sockets which hides as many of the differences between Linux, Windows and Mac as possible.
val sockaddr_of_uri : Uri.t -> sockaddr
Parse a URI as a socket address. This currently supports
val to_hyperv : sockaddr -> Af_hyperv.sockaddr option
Expose the AF_HYPERV socket address, if one exists
val to_vsock : sockaddr -> Af_vsock.sockaddr option
Expose the AF_VSOCK socket address, if one exists
val to_hyperkit : sockaddr -> Hyperkit.sockaddr option
Expose the hyperkit socket address, if one exists
include Af_common.S with type sockaddr := sockaddr and type t = Unix.file_descr
val string_of_sockaddr : sockaddr -> string
val create : unit -> t
create ()
creates an unbound socket
val listen : t -> int -> unit
listen socket queue_length
sets the socket to listening mode with the given maximum queue length
connect ?timeout_ms fd sockaddr
connects to a remote socket. On Windows the raw connect call can block forever if the server is not running when the call is executed (even if the server starts up afterwards) there is a default timeout of 300ms. On timeout this will raise Unix_error(Unix.ETIMEDOUT)
val writev : t -> Cstruct.t list -> int
Write a list of buffers
val read_into : t -> Cstruct.t -> int
Read into a buffer, returning the number of bytes written
val shutdown_read : t -> unit
Close the read half of the connection
val shutdown_write : t -> unit
Close the write half of the connection
val close : t -> unit
Close both halves of the connection