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
不知道大家有没有更好的办法.
[解决办法]
VB winsock 动态加载和卸载有关问题
VB winsock 动态加载和卸载问题Option ExplicitPrivate MaxIndex As IntegerPrivate Sub Form_Load()MaxIn
