我需要一些有关 socket.listen 的帮助。
我的 max_connections 设置为 1。但即使在连接客户端之后,如果另一个客户端尝试连接,在客户端它表示它已连接,尽管服务器没有报告任何新内容。
我的应用程序位于一台服务器和一台客户端之间。如果任何其他客户端在已经存在连接时尝试连接,我希望该连接被拒绝。
请帮助一些想法。
非常感谢你。
我需要一些有关 socket.listen 的帮助。
我的 max_connections 设置为 1。但即使在连接客户端之后,如果另一个客户端尝试连接,在客户端它表示它已连接,尽管服务器没有报告任何新内容。
我的应用程序位于一台服务器和一台客户端之间。如果任何其他客户端在已经存在连接时尝试连接,我希望该连接被拒绝。
请帮助一些想法。
非常感谢你。
您没有提供任何代码,但您的帖子引用的标题Socket.Listen
。给定的参数Socket.Listen
不是最大连接数,而是传入连接的“积压”大小。
这意味着当有人尝试连接,但您的服务器Accept()
尚未建立连接时,这些客户端位于“积压”队列中。您已将大小设置为 1,因此一次只能有 1 个客户端等待连接。
此参数不会影响您的应用程序允许的连接总数。
您可以使用 TCPClient 上的 IsConnected 属性来检查连接是否已经存在并做出决定。
我建议您接受新的客户端连接,但在访问包装服务器之前立即获取信号量并在访问后立即释放它。这种方法允许您控制有多少客户端同时使用包装服务器。