VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/02/23(Wed) 13:55
投稿者フォレスト
Eメール
URL
タイトルRe: Winsockコンポーネント(切断後の再接続)

> その後、Closeイベントなどをいろいろデバッグをしてみたのですが、他に接続しているクライアン

> の接続が終了してしまったりと、うまくいきませんでした。

その原因は以下の所だと。

> Private Sub tcpServer_Close(Index As Integer)  
> '接続が切断された
> tcpServer(Index).Close                   '接続しているサーバを閉じる
> intConnectMax = intConnectMax - 1        '接続クライアント数を1台分減らす。
> Unload tcpServer(intConnectMax)          '使用していたコンポーネントを開放する
>
> End Sub

UnloadするコンポーネントインデックスはintConnectMax?
Indexじゃなくて?

例えば5台繋いでいるとして、3台目のクライアントが接続要求を出してくるとします。
CloseするのはIndexの値なので3台目ですが、UnloadするのはintConnectMaxつまり、
5台目をUnloadしてしまうんじゃないかと思います。

あまりWinSock使ったことないですけど、コードを見るとココかな?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -