求Socket服务端程序,防止攻击的解决办法与思路?
WSAAsyncSelect TCP 模式的数据包,按理说正常只有50-200以内的客户端连接数量。
加了心跳包检测(3分钟内如果客户端没响应,服务端将主动关闭连接)
客户端每40秒发送一个心跳包以示存活状态。
但是这个模式是基于消息处理的,假如被攻击的时候,有100客户端,每秒调用2个空的连接(只是connect,什么都不干)
这时候,就容易造成服务端主界面无响应,而其他正常的客户端反而连接不上(提示服务器主动关闭了连接)
如何防止这种大量空的connection造成的攻击?
难道一定要改成IOCP模式吗?