今回の目的 前回はTCP/IPの実装法と動作確認を行いました. 今回は, 前回のコードを拡張して複数ユーザが参加可能な簡単なチャットアプリを作ってみたいと思います なお, 今回作成したコードはこちらのリポジトリにコミットされています 構想 チャットなので, 一人の発言者からのメッセージを参加者全員にリアルタイムで配布したいのですが, メッセージの受信と送信を一つのプロセスで行う形のままでは, 受信待ちのたびに処理がブロックされてしまい リアルタイムにメッセージを送信することができません. そこで, 受信と送信を並列化し, メッセージの送信を受信状況に関わらず行えるようにします. イメージ図は以下の感じです. いわゆるオブザーバパターンというやつですね. では, 早速実装していきましょう! 実装 Client コード package main import ( "fmt" "net" "os