VB6 winsock控件的问题

2024-11-13 10:51:57
推荐回答(1个)
回答1:

这很容易,参照楼主提供的代码,可以将它变成一对多的程序,把该程序复制一份,分别做客户端和服务端,客户端程序不用改动,服务端稍稍改动下
把winsock1设置成控件数组,手动添加在页面上的那个index=0
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub
这个方法做些改动,当触发连接请求时,先为winsock1控件数组创建一个新元素,然后用新元素接受连接,改动如下
Private Sub Winsock1_ConnectionRequest(ByVal index as Integer, ByVal requestID As Long)
'获取当前控件数组索引
Dim i as Integer

i = Ubound(Winsock1)

Load Winsock1(1 + 1)

Winsock1(i + 1).Accept requestID
End Sub
这样的话,原来做Listen的那个Winsock1(0)仍然在监听状态,可以继续接受连接请求,每次请求都会产生一个新的Winsock1数组元素
另外,需要改动相应的Winsock1的事件,改写成控件数组的写法,也就是参数里增加ByVal Index as Integer,触发DataArrival时,根据返回的Index值,判断是由哪个Winsock1控件数组元素触发的
不知道说清楚没,不明白的继续问