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

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

こんにちは、いつもこちらのサイトを参考にさせていただいてます。

早速ですが質問があります。

現在、WinSockコンポーネントを使って、複数のクライアントと接続可能なTCP/IPサーバを作成してい
ます。(VB Enterprise 6.0のSP5です。)

MSDNライブラリを参考にして、複数のクライアントとの接続とデータの送受信はできるようになった
のですが、クライアントの再接続時に「すでにメモリがロードされています。」というエラーが発生
してしまいます。

その後、Closeイベントなどをいろいろデバッグをしてみたのですが、他に接続しているクライアント
の接続が終了してしまったりと、うまくいきませんでした。

どなたかご存知の方がいらっしゃればご教授お願いします。
(下にソースコードを記述しておきます。)
-------------------------------------------------------------------------------------------
※tcpServer      …Winsockコンポーネント(Indexプロパティを0に設定。)
※intConnectMax  …接続中のクライアントの数(モジュールレベルで宣言)
※Listenなどのイベントは省略しています。

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

End Sub
-------------------------------------------------------------------------------------------
Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    
    '接続要求がきたとき,相手アプリからの接続要求を受け付ける
    If Index = 0 Then
        intConnectMax = intConnectMax + 1               '接続クライアントの数を一台増やす
        Load tcpServer(intConnectMax)                   '接続要求のあったクライアント用
                                                        'サーバコントロールをロードする
        tcpServer(intConnectMax).Accept requestID       'クライアントとの接続を受け入れる
   End If
End Sub
-------------------------------------------------------------------------------------------
以上です、長文失礼しました。 m(_ _)m


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

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

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