ソケットでの通信しようと、いろいろやっているのですが、思い通りになりません。
スクリプトはちょっと長めなのでアプロダへ上げました。
ttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi46645.lzh.html です。

まずserver3.plを待機させ、client.plで接続します。
client.plはSTDINを送信し、応答を受けるだけのものですが、server3.plからの接続応答「Hello!」が一行あるとワンアクション分タイミングがずれて表示されてしまいます。
whileでソケット全てを受信すると、STDINがロックされてしまい、入力が出来なくなります。

そこでclient2.plではforkを使って、STDINとソケットの受信を分けたのですが、こんどはソケットを受信しなくなってしまいました。

forkの親と子を入れ替えたり、スレッドにしてみたりしましたが、STDINがロックされるか、ソケットの受信がなくなるかのどちらかになってしまいます。

よろしくお願いします。