CでTCPクライアント/サーバー接続を確立する方法を読んでいるときに、bind()関数について疑問がありました。
クライアント/サーバー接続はLocalIP:LocalPort、RemoteIP:RemotePortによって作成されたソケットペアを使用するため、作成したソケットをローカルIPEndPointに「バインド」するためにこの関数が必要であることを読みました。したがって、私の質問は次のとおりです。
クライアントがbind()を呼び出さず、ソケットを作成した直後にconnect()を呼び出すと、カーネルは何が起こり、何をしますか(これは一般的なことです。私もクライアントプログラムで行いますが、しませんバインドする必要がない理由を理解してください)?
...そして何よりも..。
サーバープログラムがbind()を呼び出し、LocalIPアドレスとしてINADDR_ANYを指定するのはなぜですか?この定数は、一般的なIPアドレスを指定するのに役立つことを読みました。つまり、サーバーはインターネット上のどこからでもデータを受け入れます。しかし...これはローカルIPアドレスの仕様ですか、それともクライアントがサーバーに到達できる場所を示していますか?とても混乱しています...