通常、コネクションの確立は非対称に行われます。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));
コネクションエラーについては、「コネクションエラー」を参照してください。「データ転送」では、データの転送方法が、「ソケットを閉じる」では、ソケットを閉じる方法が説明されています。