1

インスタント メッセージング アプリケーションを開発しています。

これは私が助けを必要とする状況です: 私のコードのルーチン fgets() ユーザーが入力したメッセージ。ここで、メッセージをソケットなどに送信するルーチンを持つスレッドを起動する必要があります。これを行う方法がよくわかりません。

ミューテックスを使用している場合: 最初のスレッドを待機させたくありません。したがって、私はこれを使用したくありません。同様に、cond_variable は使用できません。

これの入手方法を教えてください。

4

1 に答える 1

0

考えすぎないというダックの指摘は良いことです。

別の方法は、パイプを使用することです。コンソール処理スレッドがパイプにメッセージを書き込み、ネットワーク スレッドがパイプからブロック読み取りを行います。

最終的には、ネットワーク スレッドがコンソール パイプとネットワーク ソケットの両方で select() を実行することになります。次に、送信するもの、またはネットワークから受信するものがあるときに、目を覚まして処理を行います。おしゃれ!

于 2012-03-29T00:13:13.050 に答える