Module Luv.TCP
TCP sockets.
See TCP in the user guide and uv_tcp_t
— TCP handle in libuv.
type t
= [ `TCP ] Stream.t
Binds
uv_tcp_t
.Note that values of this type can also be used with functions in:
In particular, see
Luv.Handle.close
,Luv.Stream.accept
,Luv.Stream.read_start
,Luv.Stream.write
.
val init : ?loop:Loop.t -> ?domain:Sockaddr.Address_family.t -> unit -> (t, Error.t) Result.result
Allocates and initializes a TCP stream.
Binds
uv_tcp_init_ex
.The stream is not yet connected or listening. See
Luv.TCP.bind
,Luv.Stream.listen
, andLuv.Stream
.connect.On libuv prior to 1.7.0, using
?domain
causes this function to returnError `ENOSYS
("Function not implemented").Feature check:
Luv.Require.(has tcp_init_ex)
val open_ : t -> Os_fd.Socket.t -> (unit, Error.t) Result.result
Wraps an existing socket in a libuv TCP stream.
Binds
uv_tcp_open
.
module Flag : sig ... end
Binds
UV_NONBLOCK_PIPE
.
val socketpair : ?fst_flags:Flag.t list -> ?snd_flags:Flag.t list -> Sockaddr.Socket_type.t -> int -> (Os_fd.Socket.t * Os_fd.Socket.t, Error.t) Result.result
Creates a pair of connected sockets.
Binds
uv_socketpair
. Seesocketpair(3p)
.See
Luv.Pipe.pipe
for an explanation of the optional arguments.The integer argument is the protocol number.
Requires Luv 0.5.7 and libuv 1.41.0.
Feature check:
Luv.Require.(has socketpair)
val nodelay : t -> bool -> (unit, Error.t) Result.result
Sets
TCP_NODELAY
.Binds
uv_tcp_nodelay
.
val keepalive : t -> int option -> (unit, Error.t) Result.result
Sets the TCP keepalive.
Binds
uv_tcp_keepalive
.
val simultaneous_accepts : t -> bool -> (unit, Error.t) Result.result
Sets simultaneous accept.
Binds
uv_tcp_simultaneous_accepts
.
val bind : ?ipv6only:bool -> t -> Sockaddr.t -> (unit, Error.t) Result.result
Assigns an address to the given TCP socket.
Binds
uv_tcp_bind
. Seebind(3p)
.
val getsockname : t -> (Sockaddr.t, Error.t) Result.result
Retrieves the address assigned to the given TCP socket.
Binds
uv_tcp_getsockname
. Seegetsockname(3p)
.
val getpeername : t -> (Sockaddr.t, Error.t) Result.result
Retrieves the address of the given TCP socket's peer.
Binds
uv_tcp_getpeername
. Seegetpeername(3p)
.
val connect : t -> Sockaddr.t -> ((unit, Error.t) Result.result -> unit) -> unit
Connects to a host.
Binds
uv_tcp_connect
. Seeconnect(3p)
.
val close_reset : t -> ((unit, Error.t) Result.result -> unit) -> unit
Resets the connection.
Binds
uv_tcp_close_reset
.