TcpListener:在连接之前拒绝传入的连接请求

时间:2011-03-22 18:24:42

标签: c# .net security networking tcplistener

我在公共互联网上向所有人开放的服务。它运行TcpListener来管理传入连接。

该服务通过其传入的IP地址维护一个持续行为不当的客户端列表。当连接关闭时,来自列出的IP的任何连接都会发送“离开”消息。

如果套接字没有首先打开,我更喜欢它,但是当AcceptTcpClient返回时,连接已经打开。

我的代码是否有办法在打开之前介入并检查传入的连接请求(并可能拒绝它们)?

非常感谢。

2 个答案:

答案 0 :(得分:1)

WSAAccept允许指定可以决定是接受还是拒绝连接的回调。有关如何从C#中调用它,请参阅this question

答案 1 :(得分:0)

由于您使用的是.Net,我认为您必须在Windows下运行。

套接字API无法实现您所寻求的目标。但是,您可以让程序添加Windows防火墙规则来完成同样的事情 - 假设您已打开Windows防火墙。