ソケットを使用した C++ プログラム フローに関して、ややこしい問題があります。
基本的に私が持っているのはこれです: ソケットをリッスンし、一度に 1 つの接続を受け入れる単純なコマンドライン ソケット サーバー プログラム。その接続が失われると、さらなる接続のために開かれます。
そのソケット通信システムはクラスに含まれています。このクラスは、接続を受信し、受信したデータをクライアントにミラーリングすることができます。ただし、クラスはオブジェクト指向ではない UNIX ソケットを使用します。
私の問題は、私の main() 関数に、そのオブジェクトのインスタンスを作成する行が 1 行あることです。その後、オブジェクトは初期化されて待機します。しかし、接続が得られるとすぐに、オブジェクトの初期化関数が戻り、それが起こると、プログラムは終了します。プログラムが終了する前に、このオブジェクトが削除されるまでどうにかして待つにはどうすればよいですか?
概要:
- main() オブジェクトのインスタンスを作成する
- オブジェクトがリッスンする
- 接続を受信しました
- オブジェクトの初期化関数が返す
- main() 終了 (!)
私が望むのは、そのオブジェクトが終了する前に、そのオブジェクトが行っていることを完了するまで (別名、それ自体を削除する)、 main() が何らかの形で遅延することです。
何かご意見は?