Arduino 以太网(板或屏蔽)最多支持 4 个连接。如果充当服务器,很容易造成拒绝服务:只需打开 4 个与 Arduino 的连接,不发送任何数据。服务器代码永远不会意识到连接已建立,因为 EthernetServer::available() 方法仅在连接有可用数据时返回 EthernetClient。因此,只要客户端维护连接,连接就会保持打开状态,从而阻止 Arduino 处理其他请求,而服务器在一段时间后没有机会关闭它们。
所以问题是:有没有办法在空闲连接上设置超时,也许是在 Wiznet 芯片级别?