>>353
まずはプロトコルをどうしたいのかはっきりさせろ。
問題文に無い機能を盛り込んでないか?
問題文からはユーザのリストを取得したり(クライアント側で)ユーザを
指定して送信したりする機能が必要とは思われない。

1) クライアントからの最初の送信行はユーザ名として扱う。これは
 クライアント側には返送・転送されない。
2) クライアントからの二行目以降の送信行は、先頭にユーザ名を付加して
 全てのクライアントに送信される。
3) 通信終了はクライアント側からの切断にて行う。クライアントは
 EOF文字を端末から入力された場合に、通信を終了する。

この程度で十分だと思うが。

これでも行指向ではあるので、クライアント毎のバッファ管理は必須だ。
stdioとselect()との併用はよろしくないので、自前でやる必要がある。