首页 新闻 会员 周边

c#关于端口套接字重用的问题

0
悬赏园豆:50 [已解决问题] 解决于 2009-05-05 15:16

在VB中,一个WINSOCKET控件只要CLOSE一下,然后再LISTEN一下就可以继续使用了,但是在C#中,当一个按接断开后,如果再使用,就会提示错误,通常每个端口/套接字...只允许使用一次。如何做才能让我定义的套接字/端口中/可以断开后继续使用?

Aeridy的主页 Aeridy | 初学一级 | 园豆:100
提问于:2009-05-04 10:28
< >
分享
最佳答案
0

楼主说过的问题我也遇到过

后边在停止监听中关闭所有客户端底层Socket连接_client.Client.Close();

同时

_listener.Stop();
 _listener = null;

在启动监听时重新初始化Listener就对了

花生1 | 小虾三级 |园豆:872 | 2009-05-04 22:16
其他回答(1)
0

在线程中启用,因为你用了listen,所以应该是TCP协议。

如果你说的是客户端,那它只需要知道目标的监听端口,并不绑定本地端口,也就不存在你说的问题。

如果你说的是服务端,那服务端应该是一直保持监听的,不应该随意关闭。

但是你可以使用变量控制是否处理收到的数据,定义_flag为bool标志,在收到数据时判断是否继续监听。

通常服务端为了保持监听效率以及性能问题,都会使用多线程。

类似的代码网上很多,不发上来了。

 

 

 

风海迷沙 | 园豆:4453 (老鸟四级) | 2009-05-04 11:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册