ソケットを必要な時だけオープンして、通信が終ればクローズすればよいのでは。
後はオープン時に他のCPUがCONNECT中でエラーが出れば、リトライする。
と こんな感じでどうですか。(通信には、異常やリトライはつきものです)
通信がらみのプログラムの場合、一対多を想定する場合にはコネクションを
つなぎっぱなしと言うのはもったいないです。
基本的に必要なときにコネクションを張って終わったら切るべきです。
ですから、起動時の通知もコネクションを張って通信、直ぐ切るとすれば、
他のPCから来た時にポートが塞がっていると言う事は起こりにくくなります。
アイススケーターさんが書かれているように
上記の方法を取っても通信がぶつかる事はありえる話なので、
コネクションでエラーした時にはリトライする仕組みも必要ですね。
この辺のコネクションの張り方とか、通信時の手順とか、
通信がらみのプログラムの場合は色々なケースを想定して設計する必要があります。
ありがとうございます(^^*)
テストの時にクライアントPCを2、3台同時にログインさせてみたら
サーバ側のプログラムに変なエラーのダイアログが現れてしまって困ってました(--;)
先生は1対1だからだ~とか言ってましたので、同時に起動した場合通信の時間を
ずらせばいいのかなと思いまして。。。
リトライのことですが、ソケットエラー時に少し待たせてうまく繰り返すように
してみたいと思います。
汎用性のあるプログラムにしたいし、その方が勉強になるので。。。。。
①接続する
↓
②送信する(ソケットエラーの時は①に戻る)
↓
③閉じる
このような流れで大丈夫でしょうか。。
ともかくやってみますね(^^*)
失礼します。