WinSockコントロールでクライアント側からCloseを
かけた後に、切断前のローカルポートを指定して
再びconnectをすると
「アドレスが使用されてます。」とエラーが帰ってきます。
ポート番号を変えれば接続できるのですが、
クライアント、サーバー共にポート番号を
常に固定にしたいのです。
Close処理のときはCloseメソッドを呼び出している
だけなのですが、Close,Connect時にほかに
やらなければいけない処理があるのでしょうか。
すみませんが、ご教授お願いいたします。
LocalPort プロパティに 0 を設定する必要があります。
http://support.microsoft.com/default.aspx?scid=kb;ja;409932
↑
ここの Connect メソッドの部分を読んで下さい。
あき☆彡 様、ありがとうございます。
>http://support.microsoft.com/default.aspx?scid=kb;ja;409932
>↑
>ここの Connect メソッドの部分を読んで下さい。
ここの説明によると同一ポートで接続を行うときには、ある程度時間を
置かないと接続できないそうです。
原因はわかりましたので、他の方法があるか考えてみようと思います。
どうしてもWinsockコントロールでローカルポートはそこでというのであれば
on local error Resume Nextと
winsock.stateで確認しながら開くまで
while文やTimerコントロールで、という手もありますが
余談ですがWinsockコントロールは空けたり閉じたりを繰り返すと
メモリリークを起こします。(多分仕様(笑))
そこら辺も気をつけてくださいね。
ツイート | ![]() |