sig
type 'a socktype
type 'a domain
type protocol
type 'a sockaddr
type ('a, -'b, -'c) sockopt
type ('a, 'b) t
type msg_flags = {
msg_oob : bool;
msg_peek : bool;
msg_dontroute : bool;
msg_eor : bool;
msg_trunc : bool;
msg_ctrunc : bool;
msg_waitall : bool;
msg_dontwait : bool;
}
module type AF =
sig
type tag
type address
val domain : Cf_socket.AF.tag Cf_socket.domain
val to_sockaddr :
Cf_socket.AF.address -> Cf_socket.AF.tag Cf_socket.sockaddr
val of_sockaddr :
Cf_socket.AF.tag Cf_socket.sockaddr -> Cf_socket.AF.address
val unspecified : Cf_socket.AF.tag Cf_socket.sockaddr
end
module type ST =
sig type tag val socktype : Cf_socket.ST.tag Cf_socket.socktype end
module type P =
sig module AF : AF module ST : ST val protocol : Cf_socket.protocol end
module SOCK_STREAM :
sig type tag = [ `SOCK_STREAM ] val socktype : tag socktype end
module SOCK_DGRAM :
sig type tag = [ `SOCK_DGRAM ] val socktype : tag socktype end
val msg_flags_none : Cf_socket.msg_flags
val create :
'a Cf_socket.domain ->
'b Cf_socket.socktype -> Cf_socket.protocol -> ('a, 'b) Cf_socket.t
val createpair :
'a Cf_socket.domain ->
'b Cf_socket.socktype ->
Cf_socket.protocol -> ('a, 'b) Cf_socket.t * ('a, 'b) Cf_socket.t
val to_unix_file_descr : ('a, 'b) Cf_socket.t -> Unix.file_descr
val domain_of_sockaddr : 'a Cf_socket.sockaddr -> 'a Cf_socket.domain
val dup : ('a, 'b) Cf_socket.t -> ('a, 'b) Cf_socket.t
val dup2 : ('a, 'b) Cf_socket.t -> ('a, 'b) Cf_socket.t -> unit
val getsockname : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr
val getpeername : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr
val bind : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr -> unit
val connect : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr -> unit
val listen :
('a, [< `SOCK_SEQPACKET | `SOCK_STREAM ]) Cf_socket.t -> int -> unit
val accept :
('a, [ `SOCK_STREAM ]) Cf_socket.t ->
('a, [ `SOCK_STREAM ]) Cf_socket.t * 'a Cf_socket.sockaddr
val shutdown : ('a, 'b) Cf_socket.t -> Unix.shutdown_command -> unit
val close : ('a, 'b) Cf_socket.t -> unit
val send :
('a, 'b) Cf_socket.t ->
string -> int -> int -> Cf_socket.msg_flags -> int
val sendto :
('a, [ `SOCK_DGRAM ]) Cf_socket.t ->
string ->
int -> int -> Cf_socket.msg_flags -> 'a Cf_socket.sockaddr -> int
val recv :
('a, 'b) Cf_socket.t ->
string -> int -> int -> Cf_socket.msg_flags -> int
val recvfrom :
('a, [ `SOCK_DGRAM ]) Cf_socket.t ->
string ->
int -> int -> Cf_socket.msg_flags -> int * 'a Cf_socket.sockaddr
val getsockopt :
('a, 'b) Cf_socket.t -> ('c, 'a, 'b) Cf_socket.sockopt -> 'c
val setsockopt :
('a, 'b) Cf_socket.t -> ('c, 'a, 'b) Cf_socket.sockopt -> 'c -> unit
val so_debug : (bool, 'a, 'b) Cf_socket.sockopt
val so_reuseaddr : (bool, 'a, 'b) Cf_socket.sockopt
val so_reuseport : (bool, 'a, 'b) Cf_socket.sockopt
val so_keepalive : (bool, 'a, 'b) Cf_socket.sockopt
val so_dontroute : (bool, 'a, 'b) Cf_socket.sockopt
val so_linger : (int option, 'a, 'b) Cf_socket.sockopt
val so_broadcast : (bool, 'a, 'b) Cf_socket.sockopt
val so_oobinline : (bool, 'a, 'b) Cf_socket.sockopt
val so_sndbuf : (int, 'a, 'b) Cf_socket.sockopt
val so_rcvbuf : (int, 'a, 'b) Cf_socket.sockopt
val so_sndlowat : (int, 'a, 'b) Cf_socket.sockopt
val so_rcvlowat : (int, 'a, 'b) Cf_socket.sockopt
val so_sndtimeo : (float, 'a, 'b) Cf_socket.sockopt
val so_rcvtimeo : (float, 'a, 'b) Cf_socket.sockopt
val so_error : (unit, 'a, 'b) Cf_socket.sockopt
val so_nosigpipe : (bool, 'a, 'b) Cf_socket.sockopt
end