投稿日 | : 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