読んでいただきありがとうございます。私は現在、linuxを使用しているCのソケットサーバー用のサーバーとクライアントの両方を実装しています。現在、私はサーバーとソケットの両方がユニークなメッセージを送ることができ、もう片方のエンドは正しい長さのメッセージを受け取る、働く "チャット"システムを持っています。ループの受信数が不明なソケットサーバ
出力例:
Server side
You:Hello!
client:hi, how are you?
You: fine thanks.
client: blabla
..Andクライアント側は次のようになります。
server: Hello!
you:hi,how are you?
などなど
私の質問は、のためにどのような方法があるとされますクライアント/サーバーが他の応答の前に複数のメッセージを送信できるようにするには?
私は現在、受信を待ってから送信を続ける無限のwhileループを持っています。これは接続が失われるまで繰り返されます。私は受信を待つことを強制される前に、私はこのメッセージを送信することができます。私はまだソケットとCの両方に全く新しいので、正しい実装についてはわかりません!ありがとう:)
あなたが求めていることはまったく明確ではありません。受信を試みる前に複数のメッセージを送信するだけで、どちらの側が停止するのでしょうか? –
これを構造化する一般的な方法は、複数のスレッドを使用することです。 1つのスレッドが端末から読み取り、ユーザーが接続に入力したものを送信し、もう1つのスレッドは接続から読み取り、出力を表示します。 – Barmar
これを行う別の方法は、 'select()'または 'poll()'を使用して、端末とネットワークの両方からの入力を1つのスレッドで同時に待つことです。 – Barmar