在验证客户端的IP地址之前,我不希望我的TCP服务器接受连接。就像WSAAccept允许用C做的那样 如何使用.NET库?
例如下面的代码
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(address, port));
socket.Listen(1);
Socket sock2 = socket.Accept();
if( Validate( sock2.RemoteEndPoint ) )
{
// do something
}
我不希望我的服务器像这样工作,因为它会在另一端向客户端显示端口是" alive"。
这就是我要找的东西
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(address, port));
socket.Listen(1);
Socket sock2 = socket.Accept(Validate);
答案 0 :(得分:0)
我刚刚在BCL上搜索了WSAAccept
函数。从.NET 4.5开始,此函数未被使用。
使用PInvoke调用WSAAccept
。 Socket
类允许您获取本机套接字句柄。不幸的是,Socket
类不允许您从句柄构造实例。 You'll have to perform some nasty hacks to do that.