读书人

在分配 winsock 数组成员给连接请求前

发布时间: 2012-02-13 17:20:26 作者: rapoo

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

一般要这样后才能:

winsock(7).RemoteHostIP

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

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

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

请教高手,谢谢。

[解决办法]
可以的,见

VB code
Private Sub SvrWinsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)MsgBox SvrWinsock(0).RemoteHostIP '获得ClientIPDim freeSock As Integer, aptIndex As Integer, Item As ListItemfreeSock = 0For i = 1 To intMax '在Winsock数组中查找有无空闲的Sock,    If SvrWinsock(i).State = sckClosed Then        freeSock = i        Exit For    End IfNextIf freeSock = 0 Then    intMax = intMax + 1    Load SvrWinsock(intMax)    SvrWinsock(intMax).Accept requestID    aptIndex = intMaxElse    SvrWinsock(freeSock).Accept requestID    aptIndex = freeSockEnd IfSvrWinsock(aptIndex).Tag = "WaitForCmd"Set Item = ClientList.ListItems.Add(, "s" & Str(aptIndex), Str(aptIndex))Item.SubItems(2) = SvrWinsock(aptIndex).RemoteHostIPItem.SubItems(3) = SvrWinsock(aptIndex).RemotePortEnd Sub 

读书人网 >VB

热点推荐