実際にかなりうまく機能する小さなチャットCLIアプリケーションを作成しました!
残念ながら、一方がメッセージを入力し、同時に他方のメッセージを受信すると、両方がインターレースします...これは非常にひどいものになります。
elton: Hey!
john: how are you doing?
fine anjohn: still not to bed?!
d john: haha
you?elton: fine and you?
私はこの種の問題を回避する方法を探しています。ユーザー入力用の最後の行を「予約」したり、データを受信したときにいくつかのアクションを処理してユーザー入力の位置を再計算したりします。
調査の結果、getch()を使用して各文字を1つずつ取得することがわかりました。新しいメッセージが表示されるのを待っているかどうかを定期的に確認して、このケースを処理できるようにします。
しかし、getch()を使用する場合、基本的なアクション(バックスペース、左右の移動など)を手動で再定義する必要があり、一部の文字は1バイト以上かかります。簡単に言えば、それは使用できません。