VB winsock 动态加载和卸载有关问题

VB winsock 动态加载和卸载问题Option ExplicitPrivate MaxIndex As IntegerPrivate Sub Form_Load()MaxIn

VB winsock 动态加载和卸载问题
Option Explicit
Private MaxIndex As Integer

Private Sub Form_Load()
MaxIndex = 0
Winsock(0).Listen
End Sub

Private Sub Winsock_Close(Index As Integer)
Winsock(Index).Close
Unload Winsock(Index)
End Sub

Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
 If Index = 0 Then
  MaxIndex = MaxIndex + 1
  Load Winsock(MaxIndex)
  Winsock(MaxIndex).Accept requestID
 End If
End Sub

Private Sub Winsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strMsg As String
Winsock(Index).GetData strMsg
MsgBox Index & MaxIndex
End Sub


这段代码能动态加载winsock控件,为什么不能动态卸载啊
msgbox 的值永远是+1的,高手帮忙改下啊

当加载的winsock close的时候就卸载这个加载的winsock

[解决办法]
Winsock_Close事件中不能卸载它自己.

有个折衷的办法,就是在这个事件里做两件事:

一,将需要卸载的那个INDEX所指控件的TAG属性标记为"Unload".

二,将一个卸载控件用定时器启动.

这个定时器工作后,就开始对整个WINSOCK数组进行扫描,当发现有TAG属性为Unload的,就卸载它.

这招在之前我写过的一个例子里有用到,请参考服务器端代码:

http://www.m5home.com/blog/article.asp?id=169

不知道大家有没有更好的办法.
[解决办法]

探讨
Winsock_Close事件中不能卸载它自己.