WinSockコントロールで通信切断後同一ポートを使用するには?


TAKA  2003-04-02 14:35:30  No: 77544  IP: [192.*.*.*]

WinSockコントロールでクライアント側からCloseを
かけた後に、切断前のローカルポートを指定して
再びconnectをすると
「アドレスが使用されてます。」とエラーが帰ってきます。

ポート番号を変えれば接続できるのですが、
クライアント、サーバー共にポート番号を
常に固定にしたいのです。

Close処理のときはCloseメソッドを呼び出している
だけなのですが、Close,Connect時にほかに
やらなければいけない処理があるのでしょうか。

すみませんが、ご教授お願いいたします。

編集 削除
あき☆彡  2003-04-02 18:59:23  No: 77545  IP: [192.*.*.*]

LocalPort プロパティに 0 を設定する必要があります。
  
http://support.microsoft.com/default.aspx?scid=kb;ja;409932

ここの Connect メソッドの部分を読んで下さい。

編集 削除
TAKA  2003-04-02 21:16:55  No: 77546  IP: [192.*.*.*]

あき☆彡 様、ありがとうございます。
  
>http://support.microsoft.com/default.aspx?scid=kb;ja;409932
>↑
>ここの Connect メソッドの部分を読んで下さい。

ここの説明によると同一ポートで接続を行うときには、ある程度時間を
置かないと接続できないそうです。
原因はわかりましたので、他の方法があるか考えてみようと思います。

編集 削除
Loreley  2003-04-03 05:23:30  No: 77547  IP: [192.*.*.*]

どうしてもWinsockコントロールでローカルポートはそこでというのであれば
on local error Resume Nextと
winsock.stateで確認しながら開くまで
while文やTimerコントロールで、という手もありますが

余談ですがWinsockコントロールは空けたり閉じたりを繰り返すと
メモリリークを起こします。(多分仕様(笑))
そこら辺も気をつけてくださいね。

編集 削除