我试图运行以下链接中给出的FTP服务器,但遇到了一些问题。
https://github.com/toelke/lwip-ftpd
如果客户发送" LIST"命令,服务器处理请求 send_next_directory(...)函数位于ftpd.c:523中,并以226响应以关闭数据连接。
static void send_next_directory(struct ftpd_datastate *fsd, struct tcp_pcb *pcb, int shortlist)
{
char buffer[1024];
int len;
while (1) {
if (fsd->vfs_dirent == NULL)
fsd->vfs_dirent = vfs_readdir(fsd->vfs_dir);
if (fsd->vfs_dirent) {
....
....
} else {
....
....
send_msg(msgpcb, fsm, msg226); // Here
return;
}
}
}
问题是,即使它到达那一行并在此之后调用tcp_write,该消息也会偶尔发送。我检查了Wireshark。电线%90上没有消息。