首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

在分配 winsock 数组成员给连接请求前,有办法晓得客户端的 ip 地址吗

2013-01-02 
在分配 winsock 数组成员给连接请求前,有办法知道客户端的 ip 地址吗?Load Winsock(7)Winsock(7).Accept r

在分配 winsock 数组成员给连接请求前,有办法知道客户端的 ip 地址吗?
Load Winsock(7)
Winsock(7).Accept requestID

一般要这样后才能:

winsock(7).RemoteHostIP

请问有办法能在分配 winsock 数组成员前就知道客户端的 ip 吗?

因为想实现根据不同的 ip 分配特定的  winsock 数组成员号。

应该可以实现的吧,在 Winsock_ConnectionRequest 时客户端 ip 应该已经可以获得了。。

请教高手,谢谢。
[解决办法]
可以的,见


Private Sub SvrWinsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)

MsgBox SvrWinsock(0).RemoteHostIP '获得ClientIP

Dim freeSock As Integer, aptIndex As Integer, Item As ListItem
freeSock = 0
For i = 1 To intMax '在Winsock数组中查找有无空闲的Sock,
    If SvrWinsock(i).State = sckClosed Then
        freeSock = i
        Exit For
    End If
Next
If freeSock = 0 Then
    intMax = intMax + 1
    Load SvrWinsock(intMax)
    SvrWinsock(intMax).Accept requestID
    aptIndex = intMax
Else
    SvrWinsock(freeSock).Accept requestID
    aptIndex = freeSock
End If
SvrWinsock(aptIndex).Tag = "WaitForCmd"
Set Item = ClientList.ListItems.Add(, "s" & Str(aptIndex), Str(aptIndex))
Item.SubItems(2) = SvrWinsock(aptIndex).RemoteHostIP
Item.SubItems(3) = SvrWinsock(aptIndex).RemotePort
End Sub

热点排行