当有多个客户端请求连接WinSock服务器时端口问题.

moneyHao 2005-05-22 04:14:16
当有多个客户端请求连接WinSock服务器时端口问题.

我用Winsock(0).listen,当有客户端连接过来时,用一个新的winSocket数组成员来Accept,WinSock(0)仍然listen. 在
WinsockReceive(i).LocalPort = 0
WinsockReceive(i).Accept requestID
之后,发现每个请求过来LocalPort都是同一个端口号(服务器监听端口).
我的问题是:用这种方式的话,每个客户端都使用的是同一个端口号在与服务器进行通信吧,这样当客户端较多时会不会有冲突.怎么解决此问题.我是做的一个文件接收服务器,可能同时有多个用户同时发图片文件到服务器.求赐教,急等,谢了.
Private Sub WinsockReceive_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim sIp As String ' 当前远程请求者的IP地址
Dim i As Long

sIp = WinsockReceive(0).RemoteHostIP

i = 1
Do While i <= WinsockReceive.UBound '检查是否已经有该地址的记录
If WinsockReceive(i).RemoteHostIP = sIp Then

' WinsockReceive(i).LocalPort = 0

If err.Number = 0 Then '如果没有错误,即搜索到可用的存在的IP地址

WinsockReceive(i).Close
WinsockReceive(i).Accept requestID

Exit Sub

ElseIf err.Number <> 0 Then

err.Clear

End If
End If
i = i + 1
Loop

'如果这个连接请求是新的,那么,就增加新的控件实例
'向集合中加入该客户端的IP地址。
colHostName.Add WinsockReceive(0).RemoteHostIP
Load WinsockReceive(i) '否则,加载新的控件

WinsockReceive(i).LocalPort = 0
WinsockReceive(i).Accept requestID

End Sub
...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qyii 2005-05-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4026/4026814.xml?temp=.9387018

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧