| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "ftp.h"
- void print_help() {
- printf("Usage:\n\
- help\n\
- login <username> <password>\n\
- download <remote_filepath> <local_filepath>\n\
- upload <local_filepath> <remote_filepath>\n\
- quit\n");
- }
- int main(int argc, char** argv) {
- if (argc < 2) {
- printf("Usage: ftp host [port]\n");
- return 0;
- }
- const char* host = argv[1];
- int port = FTP_COMMAND_PORT;
- if (argc >= 3) {
- port = atoi(argv[2]);
- }
- int ret = 0;
- ftp_handle_t hftp;
- ret = ftp_connect(&hftp, host, port);
- if (ret != 0) {
- printf("ftp connect failed!\n");
- return ret;
- }
- print_help();
- char cmd[256] = {0};
- char param1[256] = {0};
- char param2[256] = {0};
- while (1) {
- printf("> ");
- scanf("%s", cmd);
- if (strncmp(cmd, "help", 4) == 0) {
- print_help();
- }
- else if (strncmp(cmd, "login", 5) == 0) {
- scanf("%s", param1);
- scanf("%s", param2);
- //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
- const char* username = param1;
- const char* password = param2;
- ret = ftp_login(&hftp, username, password);
- printf("%s", hftp.recvbuf);
- if (ret != 0) break;
- }
- else if (strncmp(cmd, "upload", 6) == 0) {
- scanf("%s", param1);
- scanf("%s", param2);
- //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
- const char* localfile = param1;
- const char* remotefile = param2;
- ret = ftp_upload(&hftp, localfile, remotefile);
- printf("%s", hftp.recvbuf);
- if (ret != 0) break;
- }
- else if (strncmp(cmd, "download", 8) == 0) {
- scanf("%s", param1);
- scanf("%s", param2);
- //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
- const char* remotefile = param1;
- const char* localfile = param2;
- ret = ftp_download(&hftp, remotefile, localfile);
- printf("%s", hftp.recvbuf);
- if (ret != 0) break;
- }
- else if (strncmp(cmd, "quit", 4) == 0) {
- break;
- }
- else {
- scanf("%s", param1);
- //printf("cmd=%s param=%s\n", cmd, param1);
- ret = ftp_exec(&hftp, cmd, param1);
- printf("%s", hftp.recvbuf);
- }
- }
- printf("QUIT\n");
- ftp_quit(&hftp);
- printf("%s", hftp.recvbuf);
- return 0;
- }
|