0

我需要一些有关 socket.listen 的帮助。

我的 max_connections 设置为 1。但即使在连接客户端之后,如果另一个客户端尝试连接,在客户端它表示它已连接,尽管服务器没有报告任何新内容。

我的应用程序位于一台服务器和一台客户端之间。如果任何其他客户端在已经存在连接时尝试连接,我希望该连接被拒绝。

请帮助一些想法。

非常感谢你。

4

3 回答 3

5

您没有提供任何代码,但您的帖子引用的标题Socket.Listen。给定的参数Socket.Listen不是最大连接数,而是传入连接的“积压”大小。

这意味着当有人尝试连接,但您的服务器Accept()尚未建立连接时,这些客户端位于“积压”队列中。您已将大小设置为 1,因此一次只能有 1 个客户端等待连接。

此参数不会影响您的应用程序允许的连接总数。

于 2010-01-13T22:22:37.597 回答
0

您可以使用 TCPClient 上的 IsConnected 属性来检查连接是否已经存在并做出决定。

于 2010-01-13T22:13:11.877 回答
0

我建议您接受新的客户端连接,但在访问包装服务器之前立即获取信号量并在访问后立即释放它。这种方法允许您控制有多少客户端同时使用包装服务器。

于 2010-01-13T22:15:22.363 回答