|
一、 设定端口号、开始侦听
我们可以使用控件数组创建多客户服务器,达到多个客户同时连接到服务器。向窗体增加一个WinSock控件,修改其Name属性为SockServer,修改Index属性为0。
在窗体的Load事件中增加如下代码:
SockServer(0).LocalPort=2000
SockServer(0).Listen
数组控件0始终处于侦听状态。
二、 接收客户连接请求
在ConnectionRequest事件中首先加载一个Socket控件,再用它来接收连接。
Dim SockNum As Integer
SockNum=0
Sub SockServer_ConnectionRequest(...)
SockNum=SockNum+1
Load SockServer(SockNum)
SockServer(SockNum).Accept requestID
三、 接收客户发送的数据 和 向客户发送的数据
[接收客户发送的数据]
在DataArrival事件中将多一个Index参数,用于表示哪一个控件接收到了数据。
Sub SockServer_DataArrival(Index As Integer,ByVal bytesTotal
As Long)
Dim s As String
SockServer(Index).GetData s
End Sub
[向客户发送的数据]
哪一个控件需要发送,只需加上数组下标。
SockServer(n).SendData Text1.Text
四、 响应客户关闭 和 主动关闭连接
[响应客户关闭]
同样在Close事件中也会增加Index参数表示哪一个连接关闭。
Sub SockServer_Close(Index As Integer)
SockServer(Index).Close
End Sub
[主动关闭连接]
哪一个连接需要主动关闭,只需增加数组下标。
SockServer(n).Close
|