通常、接続の確立は非対称に行われます。1 つのプロセスは、クライアントとして機能し、もう一方のプロセスはサーバーとして機能します。サーバーは、サービスに関連付けられた既知のアドレスにソケットをバインドし、接続要求のためにソケットをブロックします。すると、無関係のプロセスがサーバーに接続できます。クライアントは、サーバーのソケットへの接続を起動することでサーバーにサービスを要求します。クライアント側では、connect(3SOCKET) 呼び出しによって接続を起動できます。UNIX ファミリは、これを次のように表現します。
struct sockaddr_un server; server.sun.family = AF_UNIX; ... connect(s, (struct sockaddr *)&server, strlen(server.sun_path) + sizeof (server.sun_family));
接続エラーについては、「接続エラー」を参照してください。「データ転送」では、データの転送方法を示します。「ソケットを閉じる」では、ソケットのクローズ方法を示します。