我计划对我继续看到的一些问题做一些协调。很多我都能纠正,但我决定在这里分享,因为它们可能对其他人有用(而且因为我已经厌倦了必须把我们使用的每个新版本的和谐都固定某些东西)。我制作几个线程仅仅是因为一个线程将绝对庞大。这个线程属于H
ARMony的TCP/IP堆栈(主要是FTP)。这样做会使一些XML没有根错误出现时,我试图张贴。有没有合适的解决办法?Trace/TCP/IP协议栈确实令人印象深刻。我们自己的测试表明,它比旧的MLA栈更快、更可靠。但是,我添加了一些内容来帮助我们解决,特别是FTP。我可能应该对此做一个单独的线程,但我真的不知道在运行时而不是在MHC中应用TCP/IP初始化设置的最佳方法。我们存储IP地址、掩码和一些其他信息,例如DHCP客户端是否应该运行到机载EEPROM中。我们在MHC中设置默认值,然后希望能够从EEPROM读取设置并基于此修改堆栈设置。现在,我们现在修改和声文件,以提供一个自定义的TCP/IP堆栈init函数,该函数由SysIsIrimalIZE()调用。我们还从TCPIP_NETWORK_CONFIG和TCPIP_STACK_MODULE_CONFIG中删除“const”限定符,以便在调用真正的TCPIP_STACK_Ini
tialize()之前在自定义init函数中修改它们。根据我所理解的,MHC有一个图形库的堆估计器。请为TCP/IP堆栈添加类似的内容。如果TCP/IP堆栈的堆估计器没有发生,那么至少提供用于获取TCP/IP堆的“高水印”的功能;也就是说,让我们看看最大的总分配是什么。我设法将它添加到内部堆(稍后我可以邮寄代码),至少有助于检查是否分配了足够的堆。请添加对FTP的“DELE”和“NOOP”命令的支持。如果需要,“DELE”支持可以是MHC选项。注意,这将需要在“tcpip/src/./sys_fs_wrapper.c”中设置文件删除包装函数。函数TCPIP_FTP_ServerInitialize()应该初始化FTP描述符的文件句柄。函数TCPIP_FTP_ServerProcess()应该确保如果在传输过程中连接已关闭,则关闭连接对象的文件描述符。否则,您将面临无法启动新传输的风险,因为文件句柄悬空打开(是的,我遇到过这种情况)。如果连接超时,相同的TCPIP_FTP_ServerProcess()函数也应该将FTP命令状态设置为TCPIP_FTP_CMD_SM_IDLE。我不记得为什么我必须进行此修复,因为我很久以前就进行了此修复,但我认为省略此操作会导致超时后无法重新连接。TCPIP_FTP_FileGet()和TCPIP_FTP_FileGet()中的成功传输应该重置FTP活动计时器,以便长时间传输不会导致重新连接。连接不及时。