socket_connect6 attempts to make a connection from TCP socket s to TCP port port on IP address ip.
The meaning of scope_id is dependent on the implementation and IPv6 IP. On link-local IPv6 addresses it
specifies the outgoing interface index. The name (e.g. "eth0") for a given interface index can be
queried with getifname. scope_id should normally be set to 0.
socket_connect6 may return
• 0, to indicate that the connection succeeded (and succeeded immediately, if the socket is non-
blocking)
• -1, setting errno to error_inprogress or error_wouldblock, to indicate that the socket is non-
blocking
• -1, setting errno to something else, to indicate that the connection failed (and failed
immediately, if the socket is non-blocking).
When a background connection succeeds or fails, s becomes writable; you can use socket_connected to see
whether the connection succeeded. If the connection failed, socket_connected returns 0, setting errno
appropriately.
Once a TCP socket is connected, you can use the read and write system calls to transmit data.
You can call socket_connect6 without calling socket_bind6. This has the effect as first calling
socket_bind6 with IP address :: and port 0.