connect/2 is a direct link to the connect(2) socket system call. Stream must be a socket stream created with socket/3. If the socket was created in the unix domain, Address must be an atom which identifies the file associated with the socket. If Address is 0 and socket type is datagram, the socket is disconnected.
If the socket is in the internet domain, the address is in the form HostName/Port, where the atom HostName denotes the host to be connected on the given integer port Port. If Address is 0/0 and socket type is datagram, the socket is disconnected.
Every socket communication in ECLiPSe requires at least one of every two communicating processes to call connect/2, because system calls to perform direct datagram addressing are not available. The socket connection can be queried with get_stream_info(s, connection, C).
Stream sockets are connected using the standard sequence, i.e. socket/3, bind/2, listen/2 and accept/3 on the server and socket/3 and connect/2 on the client. After the sockets are connected, both processes can use them for reading and writing.
Datagram sockets require a connect/2 call from the process that wants to write on the socket and bind/2 from the one that reads from it.
If a system interface error (170) is raised while calling connect/2, the socket will be automatically closed. This is to get around a problem where the connect(2) system call can leave the socket in an incorrect state on some operating systems.