VB中winsocK控件问题

我用动态控件数组对应多客户端,但我服务端接到一个数据时我怎么知道是哪个客户端发送来的,又是要发给哪个客户端的呢?其实就是说服务端怎么判定数据的来向和去向?
当多个客户端时,如何知道是发给谁的
我再说说我的意思吧,一个服务端对应多个客户端,客户端之间产生数据传输,靠服务端来转发客户端之间的数据,服务端在中间起一个以承上启下的作用 ,我现在知道是谁发的数据,但不知道这数据是发给哪个客户端的

如果是控件数组的话,它的事件中会自动带一个Index参数的,根据这个就知道是哪个winsock接收的数据,然后再给这个winsock发送数据即可。比如:

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
'Winsock1(Index)就是接收和发送数据的那个客户端对应的Winsock控件
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-06
每次客户端向服务端发送数据的时候就加上IP地址呀..服务器收到那就知道是谁发过来的啦..
第2个回答  2010-02-06
你使用控件数组,那么index就是对应每个客户端的连接了。
例如winsock(0).getdata 那么就是对应第一个连接的客户,而winsock(5).senddata就是给第六个连接的客户发送消息

Private Sub winsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
winsock(index).getdata str
msgbox "第" & (index+1) & "个客户的消息是" & str
str2="以收到!"
msgbox "回复此客户消息为:" & str2
winsock(index).senddata str2
End Sub
相似回答