現在、プロジェクトに取り組んでおり、netcat
ライブラリを使用して簡単なチャットアプリケーションを実装しています。
クライアントは、ポート番号とコマンドを入力するように求められます
nc -l -p xxxx
ここで、xxxx
はクライアントが入力したポート番号です。
同様に、ホストは同じポート番号の入力を求められ、接続は次を使用して確立されます。
nc <ip_address> -p xxxx
ただし、メッセージを入力しているユーザーのユーザー名は表示されないため、空白のチャットエクスペリエンスが得られます。
hey
hello
what's up
Nothing
代わりに、次のようなものにしたい
Foo : hey
Boo : hello
Foo : what's up
Boo : Nothing
netcat
を使用してこの機能を実現できますか、またはこれを行う他の機能はありますか?
このようなことができます。
Aliceがサーバーであると仮定します。彼女はタイプします:
mawk -W interactive '$0="Alice: "$0' | nc -l -p <port_number> <ip_of_alice>
次に、Bobはそのサーバーに接続します。彼はタイプします:
mawk -W interactive '$0="Bob: "$0' | nc <ip_of_alice> <port_number>
mawk
行は、人の前に付けた名前を「チャット」に追加するだけです。バッファーなしの書き込みをstdoutに設定し、行バッファー付きの読み取りをstdinに設定するには、-W interactive
が必要です。
アリスはHi Bob
を入力し、次のように表示されます:
Hi Bob
ボブは見ています:
Alice: Hi Bob
ボブはHi Alice
と入力し、次のように表示されます。
Alice: Hi Bob
Hi Alice
アリスは見ている:
Hi Bob
Bob: Hi Alice