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

服务端多连接的迷惑

2013-01-02 
服务端多连接的疑惑Private intMax As LongPrivate Sub Form_Load()intMax 0sckServer(0).LocalPort 1

服务端多连接的疑惑
Private intMax As Long

Private Sub Form_Load()
  intMax = 0
  sckServer(0).LocalPort = 1001
  sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
  If Index = 0 Then
  intMax = intMax + 1
  Load sckServer(intMax)
  sckServer(intMax).LocalPort = 0
  sckServer(intMax).Accept requestID
   End If
End Sub
这是别人的一段代码,目的是使服务端可以接受多个连接,我有几点疑惑
1、加入增加了新的sckServer控件,为什么上面代码中没有用该控件的listen方法?不用的话不是不能监听端口吗?也就是不能建立连接啊
2、一个服务端的winsock控件如果已经和客户端建立了连接,那么是不是不能再接受另外其他的客户的连接请求?除非把他关闭?
没分了 啊
[解决办法]
注意到Accept方法没.

这个方法是将新来的连接使用另一个WINSOCK控件去应答.

所以只需要有一个控件进行监听,然后不断地把请求发送给别的控件进行应答就行了.

就像一个前台MM:)
[解决办法]
那个原因是因为accept的控件需要是关闭状态的控件.

如果不关闭就无法进行应答.

一对一的话只能如此.
[解决办法]
而且,既然是一对一,那CLOSSE了又没啥问题,反正是一对一.

而如果是一对多,又不可能让用于LISTEN的控件去应答,所以根本就不冲突,你的问题从何而来?

热点排行