3

C で単純な pop3 クライアントに取り組んでいますが、次の問題が発生しました: AUTHORIZATION 状態では、サーバーはパスワードを認識しません:

接続成功: +OK GMX POP3 StreamProxy 準備完了

ユーザー hopatropa@gmx.com
+OK パスワードを教えてください。

合格 ******
-ERR ユーザー名またはパスワードが正しくありません

しかし、同じ一連のコマンドが telnet でもうまく機能します。

+OK GMX POP3 StreamProxy 対応
ユーザー hopatropa@gmx.com
+OK パスワードを教えてください。
合格 ******
+OK メールボックスがロックされ準備完了

私が送信したパスワードは問題ないと確信しています。これは、pass コマンドを送信して回答を受け取る方法です。

sprintf (コマンド, "pass %s\r\n", pass); //pass はパスワードを含む文字列です
    printf("%s", コマンド);
    if (write(sock, command, sizeof(command)) == -1)
    {
        fprintf(stderr, "write() エラー: %d\n", errno);
        エラー番号を返します。
    }
    if (read(sock, msgbuff, sizeof(msgbuff)) == -1)
    {
        fprintf(stderr, "read() エラー: %d\n", errno);
        エラー番号を返します。
    }

どんな助けでも大歓迎です。

4

1 に答える 1

3

長さに strlen(command) ではなく sizeof(command) を使用しているのはなぜですか?

于 2010-01-30T15:03:05.820 に答える