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.