signature MLTON_SOCKET = sig structure Address: sig type t = NetHostDB.in_addr end structure Ctl: sig val getERROR: ('af, 'sock_type) Socket.sock -> (string * Posix.Error.syserror option) option end structure Host: sig type t = {name: string} val getByAddress: Address.t -> t option val getByName: string -> t option end structure Port: sig type t = int end type t val accept: t -> Address.t * Port.t * TextIO.instream * TextIO.outstream val connect: string * Port.t -> TextIO.instream * TextIO.outstream val listen: unit -> Port.t * t val listenAt: Port.t -> t val shutdownRead: TextIO.instream -> unit val shutdownWrite: TextIO.outstream -> unit val fdToSock: Posix.FileSys.file_desc -> ('a, 'b) Socket.sock end
This module contains a bare minimum of functionality to do TCP/IP programming. This module is implemented on top of the Socket module of the Basis Library. We encourage you to use the standard Socket module, since MLton.Socket is deprecated.
-
type Address.t
the type of IP addresses. -
Ctl.getERROR s
like the Basis Library's Socket.Ctl.getERROR, except that it returns more information. NONE means that there was no error, and SOME means that there was an error, and provides the error message and error code, if any. -
Host.getByAddress a
looks up the hostname (using gethostbyaddr) corresponding to a. -
Host.getByName s
looks up the hostname (using gethostbyname) corresponding to s. -
type Port.t
the type of TCP ports. -
type t
the type of sockets. -
accept s
accepts a connection on socket s and return the address port of the connecting socket, as well as streams corresponding to the connection. -
connect (h, p)
connects to host h on port p, returning the streams corresponding to the connection. -
listen ()
listens to a port chosen by the system. Returns the port and the socket. -
listenAt p
listens to port p. Returns the socket. -
shutdownRead ins
causes the read part of the socket associated with ins to be shutdown. -
shutdownWrite out
causes the write part of the socket associated with out to be shutdown. -
fdToSock fd
coerces a file descriptor to a socket.