Cでクライアント/サーバープログラムを使用して、サーバーからクライアントにファイルを転送しています。
しかし、クライアントはファイルの最後のバイトを受信した後でも recv を待っています。クライアントを強制終了するか、サーバーを強制終了した場合にのみ、クライアントが終了します。ただし、サーバーは他のクライアントの要求を楽しませる必要があるため、ループに入る必要があります。
サーバーで使用fork()
して、各クライアントのリクエストを楽しませています。クライアントの要求が受け入れられた後、子プロセスを終了していますが、クライアントはサーバー プログラム全体が強制終了された場合にのみ終了します。
サーバーの子が終了したときにクライアントが終了しないのはなぜですか?