Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of FTPClient by
Revision 5:7d5a68d42a0b, committed 2018-07-16
- Comitter:
- Albinarackal
- Date:
- Mon Jul 16 09:20:12 2018 +0000
- Parent:
- 4:8ecc32e7c69b
- Commit message:
- Program for VC0706 with FTP and MQTT
Changed in this revision
FTPClient.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/FTPClient.cpp Thu Dec 14 04:49:35 2017 +0000 +++ b/FTPClient.cpp Mon Jul 16 09:20:12 2018 +0000 @@ -2,6 +2,7 @@ #include "EthernetInterface.h" #include "FTPClient.h" //#define DEBUG +int count=0; FTPClient::FTPClient(PinName mosi, PinName miso, PinName sclk, PinName ssel, const char* root) : _SDFileSystem(mosi, miso, sclk, ssel, root){ //printf("Object"); blogin = false; @@ -21,23 +22,30 @@ bool FTPClient::open(char ip[], int port, char id[], char pass[]){ //printf("\nInside Open"); -/* - printf("\n%s",ip); + + /* printf("\n%s",ip); printf("\n%d",port); printf("\n%s",id); printf("\n%s",pass); - printf("\nHappens"); - printf("\nHappens\n"); + //printf("\nHappens"); + // printf("\nHappens\n"); */ FTPClientControlSock = new TCPSocketConnection(); FTPClientDataSock = new TCPSocketConnection(); - //printf("\nHappens\n"); + /* printf("\nHappens\n"); + printf("after loop first"); + printf("after loop first"); + printf("after loop first"); + printf("after loop first"); + printf("after loop first");*/ #if 0 do{ FTPClientControlSock->connect(ip, port); }while(!FTPClientControlSock->is_connected()); #endif + + #if 1 while (FTPClientControlSock->connect(ip, port) < 0) { #ifdef DEBUG @@ -47,6 +55,7 @@ } #endif + while(!blogin){ size = FTPClientControlSock->receive(rbuf, sizeof(rbuf)); if(size > 0){ @@ -70,6 +79,7 @@ } } } + // printf("end of the open port"); return 1; } //*/ @@ -157,7 +167,7 @@ else{ brfileflag = true; fclose(fp); - FTPClientDataSock->close(); + //FTPClientDataSock->close(); break; } } @@ -190,6 +200,7 @@ else return 0; } bool FTPClient::putfile(char* myfilename, char* filename){ + printf("Entered putfile\n"); if(blogin){ @@ -197,16 +208,25 @@ FTPClientControlSock->send(sbuf, strlen(sbuf)); while(!bsfileflag){ + // printf("THE VALUE OF RbuF is : %s\n",rbuf); + /*if(!strncmp(rbuf,"220",3)){ + bool status = FTPClient::open("172.16.73.33", 21,"user1","user1"); + printf("THE VALUE OF RbuF is : %s\n",rbuf); + printf("THE STATUS IS : %d\n",status); + }*/ + size = FTPClientControlSock->receive(rbuf, sizeof(rbuf)); if(size > 0){ - #ifdef DEBUG - printf("Received message from server: %s\r\n", rbuf); - #endif + //#ifdef DEBUG + printf("Received message from server after loading the file in putfile : %s\r\n", rbuf); + //#endif if (!strncmp(rbuf, "150", 3)){ + printf("ENTERING TO UPDATE FILE TO SERVER\n"); fp = fopen(myfilename, "r"); fseek(fp, 0, SEEK_END); // seek to end of file remain_filesize = ftell(fp); // get current file pointer fseek(fp, 0, SEEK_SET); // seek back to beginning of file + //printf("the beg of fl: %d\n",fseek(fp, 0, SEEK_SET) ); do{ memset(sbuf, 0, sizeof(sbuf)); if(remain_filesize > MAX_SS) @@ -222,10 +242,12 @@ }while(remain_filesize!=0); fclose(fp); bsfileflag = true; - FTPClientDataSock->close(); + printf("ENTER TO CLOSE FTPdatasocket\n"); + //FTPClientDataSock->close(); break; } else if (!strncmp(rbuf, "227", 3)){ + printf("while\n"); pportc(rbuf); #if 0 do{ @@ -235,9 +257,10 @@ #if 1 while (FTPClientDataSock->connect(ftpServer_data_ip_addr_str, remote_port) < 0) { - #ifdef DEBUG + + //#ifdef DEBUG printf("Unable to connect to (%s) on port (%d)\r\n", ftpServer_data_ip_addr_str, remote_port); - #endif + //#endif wait(1); } #endif @@ -245,6 +268,7 @@ FTPClientControlSock->send(sbuf, strlen(sbuf)); } } + } bsfileflag = false; return 1; @@ -270,11 +294,11 @@ size = FTPClientDataSock->receive(rbuf, sizeof(rbuf)); rbuf[size] = '\0'; if(size>0){ - printf("%s", rbuf); + printf("The buf val is :%s\n", rbuf); } else{ bdirflag = true; - FTPClientDataSock->close(); + //FTPClientDataSock->close(); break; } } @@ -313,27 +337,40 @@ FTPClientControlSock->send(sbuf, strlen(sbuf)); while(!blsflag){ + //rbuf[size] = '\0'; size = FTPClientControlSock->receive(rbuf, sizeof(rbuf)); if(size > 0){ - #ifdef DEBUG - printf("Received message from server: %s\r\n", rbuf); - #endif + //#ifdef DEBUG + printf("ls started\n"); + printf("Received message from server: %s\n", rbuf); + //#endif if (!strncmp(rbuf, "150", 3)){ while(true){ memset(rbuf, 0, sizeof(rbuf)); size = FTPClientDataSock->receive(rbuf, sizeof(rbuf)); - rbuf[size] = '\0'; + // rbuf[size] = '\0'; + printf("size value is : %d\n",size); if(size>0){ - printf("%s", rbuf); + printf(" Image NAME %s\n", rbuf); + printf("Image list\n"); + } + else{ + printf("else started\n"); blsflag = true; - FTPClientDataSock->close(); + //count++; + //FTPClientDataSock->close(); + printf("else ended\n"); break; + } + } } + else if (!strncmp(rbuf, "227", 3)){ + printf("else if ended\n"); pportc(rbuf); #if 0 do{ @@ -342,17 +379,22 @@ #endif #if 1 while (FTPClientDataSock->connect(ftpServer_data_ip_addr_str, remote_port) < 0) { - #ifdef DEBUG + //#ifdef DEBUG printf("Unable to connect to (%s) on port (%d)\r\n", ftpServer_data_ip_addr_str, remote_port); - #endif + // #endif wait(1); } #endif - sprintf(sbuf, "nlst\r\n"); + sprintf(sbuf, "nlst\r\n"); + printf("the image is %s\n",sbuf); + //count++; FTPClientControlSock->send(sbuf, strlen(sbuf)); } - } + + } + } + //printf("count is : %d\n", count); blsflag = false; return 1; } @@ -415,15 +457,16 @@ if(blogin){ - sprintf(sbuf, "cwd %s\r\n", dirname); + sprintf(sbuf, "cwd %s\r\n", dirname); + printf("current working directory is : %s\n",dirname); FTPClientControlSock->send(sbuf, strlen(sbuf)); while(!bcdflag){ size = FTPClientControlSock->receive(rbuf, sizeof(rbuf)); if(size > 0){ - #ifdef DEBUG + //#ifdef DEBUG printf("Received message from server: %s\r\n", rbuf); - #endif + // #endif if (!strncmp(rbuf, "250", 3)){ bcdflag = true; }