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

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

あれからいろいろと方法を模索した結果、以下のソースで正常に動作しました!!

---------------------------------------------------------------------------------------------
※ConnectFlg(n)   …Boolean型のフラグ。

Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    
Dim i As Integer                       'ループカウンタ
'接続要求がきたとき
'相手アプリからの接続要求を受け付ける
If Index = 0 Then
    intConnectMax = intConnectMax + 1  '接続クライアント数を一台増やす
    For i = 0 To intConnectMax         '接続ループ
        If ConnectFlg(i) = False Then  'i番目のコントロールが非接続かどうか
                Exit For               '非接続の時、ループを脱出する
        End If
    Next
    Load tcpServer(i)                  'サーバコントロールのロード
    tcpServer(i).Accept requestID      'クライアントとの接続を受け入れる
    ConnectFlg(i) = True               '接続フラグを立てる
End If
    
End Sub
---------------------------------------------------------------------------------------------
※CloseイベントのときはIndex値で閉じたサーバコントロールと同じフラグを閉じるようにしました。
Private Sub tcpServer_Close(Index As Integer)
    
    '接続が切断された
    tcpServer(Index).Close                            '接続しているサーバを閉じる
    intConnectMax = intConnectMax - 1                 '接続クライアント数を1台分減らす。
    Unload tcpServer(Index)                           'サーバコントロールの開放
    ConnectFlg(Index) = False                         '接続フラグの設定
End Sub
---------------------------------------------------------------------------------------------
以上です。長文失礼しました。

それにフォレストさん、いろいろとご意見をいただきまして、ありがとうございました。 m(_ _)m


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

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

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