| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1349 人关注过本帖
标题:万分火急 实在是头疼了!关于ConnectionRequest
只看楼主 加入收藏
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
 问题点数:0 回复次数:2 
万分火急 实在是头疼了!关于ConnectionRequest

在WINSOCK的SERVER端中有这么一段代码


Private Sub myserver_ConnectionRequest(ByVal requestID As Long)
MsgBox "有人要跟我连接"
If myserver.State <> sckClosed Then
myserver.close
End If
myserver.Accept requestID
End Sub


仔细读这段代码,其中的IF语句表示,如果有客户端向SERVER发送连接请求时,如果SERVER的连接没有处于关闭状态,则关闭掉SERVER后重新与新的客户端建立连接


假设现在有SERVER A 和CLIENT B 、 C
当A和B正确建立连接后,C向A发送一个连接请求,此时A会断开与B的连接而与C建立新的连接



我现在想实现的功能是,当A接收到新的连接请求时,出现选择框,A可以自由选择是保持与B的连接还是重新与C连接

最重要的是,如果A保持与B连接,C应该要收到相应的提示,比如“A拒绝了连接”
就这个功能,我找了很多地方都没有发现可以解决,但是看到相关资料和MSDN上说 SERVER端是可以选择是否与新的CLIENT连接的。


那具体怎么实现呢?谢谢大家一定要帮我解答!肯定是有办法的,但是最好不借助第三方控件(我曾想过在CLIENT端做一个TIMER超过时间就自动停止正在连接的过程,但是似乎我也没找到办法停止正在进行的连接,除了UNLOAD)

搜索更多相关主题的帖子: 火急 SERVER myserver 头疼 Sub 
2006-11-28 02:06
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
今天晚上又思考了很久,还把瑞星防火墙搬出来察看端口状态

看了半天我发现,当A和B通信时,假如C象A发出REQUEST,好像A是几乎忽略的。即使是有IF语句要求有新的REQUEST来到时必须执行A.close。

但是我发现,仅仅是A.close还不能中止B对A的端口占用(大概是因为B向A在传送数据的原因吧,即使A把门关了,B还是在门口堵着)
最重要的是要实现B.close。但是如何在SERVER上执行client的命令呢?看来只能用senddata和getdata事件了。

假设server要让client关闭的时候,象client发一条特约的字符串(比如(shutdown)),当client的getdata接到后,判断字符串,如果吻合,就执行client.close。


这个想法也是理论上的,今天也太晚了,没办法实验,只是不知道还有没有更好的办法,或者是一开始我的思路就错了?
2006-11-28 03:30
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
顶一下
2006-11-28 20:00
快速回复:万分火急 实在是头疼了!关于ConnectionRequest
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011702 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved