FTP client 发送 CWD 命令,故意让目录不正确,返回 550 错误,但是接下来其他命令也都不对了

client 是自己用 C 写的

#define BUFFER_SIZE 1024

char recv_buffer[BUFFER_SIZE];
char send_buffer[BUFFER_SIZE];

// ...
else if (start_with(cmd_read, "cd"))
{
    char *token;
    const char delim[2] = " \t";
    token = strtok(cmd_read, delim);
    char *path = strtok(NULL, delim);
    if (path == NULL)
    {
        printf("please input the path\n");
        continue;
    }
    sprintf(send_buffer, "CWD %s\r\n", path);
    send_cmd(client_socket, send_buffer);
    length = get_respond(client_socket, recv_buffer);
    printf("%s", recv_buffer);   
}


ftp server 什么要发送两次错误信息?这个如何处理呢?

Github 源码
PS:
FTP server我用的是windows

阅读 3.9k
1 个回答

测试发现windows 550-
这里有个-应该表示多行,所以得接收到550 End
PS TCP是一个流式协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题