!!!サーバープログラム *クライアントから送られたデータをそのまま全クライアント(送ったきたクライアントを除く)に送信する。 *IOチャネルではクライアントのファイル識別子の取得が分からなかったため、ソケットにより通信を実装している。 *ソケットの監視はselect関数で実装。ループ毎にselectを実行している。 *gtkとの統合は、ループ文をn秒毎に実行することで実現可能と考えている。 *サーバー自体は操作しない上にデータを受け取って流すだけだからgtkで実装する必要はない? !!バグ どうやらクライアントのプロセスを強制終了(Ctrl+C)すると、何もないデータをサーバーが受信し続ける。((br)) つまり strlen(msg) == 0 のデータ。強制終了させないことはできないので、条件分岐によってソケットを閉じる処理を追加した。((br)) !!!クライアントプログラム *stdinからの入力を監視し、入力を取得したらサーバーに送信する。 *ソケットの監視はサーバーと同様の処理で監視。 *名前とメッセージの結合を行なった後に送信する。 !!バグ 入力中にメッセージが到着すると入力中のメッセージの続きに到着したメッセージが表示される。綺麗に表示したいならブロッキングする必要があり、すぐにメッセージを表示できなくなる。今回はメッセージの滑らかな表示を優先させた。