是否有可能在Node.JS中以这样的方式“删除”连接
>客户从未收到回复(200,404或其他)
>永远不会通知客户端连接已终止(从不接收连接重置或流结束)
>释放服务器的资源(服务器不应尝试以任何方式维护连接)
我在Solaris上专门询问Node.JS HTTP服务器(实际上只是复杂的TCP服务器),但如果有其他操作系统(Windows,Linux)或编程语言(C/C++,Java)允许这样做,我有兴趣.
我为什么要这个?
惹恼或减慢(可能是单线程)机器人,如phpMyAdmin Probe.
我知道这不是真正重要的事情,但这些类型的问题可以更好地帮助我了解我的程序的界限.
我知道客户端主机可能会重新传输连接数据包,因为我从不发送重置.
最佳答案 这些在通用TCP堆栈中是不可能的(与您自己的自定义TCP堆栈相比).原因是:
>关闭套接字会发送RST
>即使您避免发送RST,客户端仍然认为在服务器关闭连接时连接已打开.如果客户端在此连接上发送任何数据包,则服务器将发送RST.
您可能希望探索这些机器人的防火墙,并使用iptables(linux)或solaris上的等效物来阻止/限制其IP地址.