Java、Python、およびその他の同類が私を台無しにしました。サーバー コードに応答して FTP クライアントを自動化しようとしています。
例えば:
// I know this is ugly, please bear with me
char username[25];
strcat(username, USER); //"USER "
strcat(username, usr); // "foo"
strcat(username, "\n"); // = "USER foo\n"
char password[25];
strcat(password, PASS); //"PASS "
strcat(password, pswd); //"bar"
strcat(password, "\n"); // = "PASS bar\n"
//read/write loop
while (1) {
char* responsePtr;
serverCode = readSocket(sockfd, mybuffer);
if (serverCode == 221)
break;
if (serverCode == 220)
responsePtr = &username;
if (serverCode == 331)
responsePtr = &password;
writeSocket(sockfd, responsePtr);
}
これを試してみると、USER では機能しますが、PASS では文字化けしたテキストが表示されます。
C->S: USER anonymous
S->C: 331 Please specify the password.
C->S: (??_?PASS random
私より賢明で経験豊富な人が、C 文字列ポインタを教えてくれませんか? 明らかに、これは私にとってはうまくいきません。