【问题标题】:on writing a POP3 client in C关于用 C 编写 POP3 客户端
【发布时间】:2011-01-11 05:42:59
【问题描述】:

我正在使用 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); 返回错误号; }

任何帮助将不胜感激。

【问题讨论】:

    标签: c email client pop3


    【解决方案1】:

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

    【讨论】:

    • 哇,我没想到它会起作用......我在想服务器会在 /r/n 之后停止读取......我真是太愚蠢了......谢谢......它是吃了我几个小时。否则我不会发布。
    • John:对于未来的问题,您可能想看看wireshark。查看实际通过网络发送的内容总是很有用的。在这种情况下,问题在网络捕获中很容易看出。
    猜你喜欢
    • 2018-03-02
    • 2015-01-21
    • 2010-12-10
    • 2015-08-14
    • 2011-03-10
    • 1970-01-01
    • 2018-05-08
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多