3

我正在使用 C 语言开发一个简单的 pop3 客户端,但遇到了以下问题:在 AUTHORIZATION 状态下,服务器将永远无法识别我的密码:

连接成功:+OK GMX POP3 StreamProxy ready

用户 hopatropa@gmx.com
+OK 可以给我你的密码吗?

经过 ******
-ERR 用户名或密码不正确

但是相同的命令序列在 telnet 中运行良好

+OK GMX POP3 StreamProxy 准备就绪
用户 hopatropa@gmx.com
+OK 可以给我你的密码吗?
经过 ******
+OK 邮箱已锁定并准备就绪

我确定我发送的密码没问题。这就是我发送 pass 命令并接收答案的方式:

sprintf (command, "pass %s\r\n", pass); //pass是包含密码的字符串
    printf("%s", 命令);
    if (write(sock, command, sizeof(command)) == -1)
    {
        fprintf(stderr, "write() 错误: %d\n", errno);
        返回错误号;
    }
    if (读取(sock, msgbuff, sizeof(msgbuff)) == -1)
    {
        fprintf(stderr, "read() 错误: %d\n", errno);
        返回错误号;
    }

任何帮助将不胜感激。

4

1 回答 1

3

为什么你使用 sizeof(command) 而不是 strlen(command) 作为长度?

于 2010-01-30T15:03:05.820 回答