ソケットでCLIで動くチャットを作る
概要
新入生が授業で扱うので親しみが深いから、みたいな理由ですかね?
技術的な勉強という意味ではRustもすき
歴史的な理由によりますt6o_o6t.icon
ソケットはUNIXの一部として開発されました
たしか
ソケットのAPIがC言語で書かれているので、それをもっとも自然に扱えるのもC言語だろう、という考えでした
例えばPythonだと、ソケットである必要がないですね
よりユーザーが使いやすいようになっているはずです
このアイデアはソケットありきです
普段使っているライブラリの根っこに何があるのか、知ってもらいたい
UDP
TCP
🙆iNoma.icon
2. テキスト入力プロセスの実装
いや、プロセスを複数作ったからといって複数の画面が開かれるわけではないな… こういうのを使って、キー入力を待ちながら出力も行う形になるのか いや、大丈夫だと思うよ
別のファイルだし
現在入力中の内容はファイルにもflushされてないし ChatGPTに聞いたらこういうのは「echo server」と呼ぶと言われた んー、なんか違うような、まあいいけど!
どうもならない。
いろんな構成が考えられる
通信は1対1
これはクライアントが実行するには非効率的なので、中央にサーバーを置いた方がいいよね こういう考えになる
通信は1対多
自分以外に4人いても、sockaddrポインタの配列を持っておいて、1つのソケットを介して順番に各送信先に送っていけばよい 1対1のチャットを考えれば中央サーバーのこと考えなくていい
これで行こう