update ftpclient

This commit is contained in:
Ambrumf 2023-10-12 02:40:31 +08:00
parent fbf72cc60d
commit 199bbd125c
1 changed files with 11 additions and 8 deletions

View File

@ -27,7 +27,7 @@ int SendCommand(char *cmd)
{
int ret;
int fd = socket(AF_INET, SOCK_STREAM, 0);
ret = send(fd, cmd, (int)strlen(cmd));
ret = send(fd, cmd, (int)strlen(cmd),0);
closesocket(fd);
if (ret < 0) {
return 0;
@ -41,7 +41,7 @@ int RecvRespond(char * respond,int len)
len -= -1;
int fd = socket(AF_INET, SOCK_STREAM, 0);
for (off = 0;off < len;off += ret) {
ret = recv(fd,&respond[off],1);
ret = recv(fd,&respond[off],1,0);
if(ret < 0 ){
printf("recv respond error\r\n");
closesocket(fd);
@ -86,7 +86,7 @@ int Login(uint8_t addr[4],int port,char *username,char *password)
tcp_sock.sin_port = htons(port);
tcp_sock.sin_addr.s_addr = PP_HTONL(LWIP_MAKEU32(addr[0],addr[1],addr[2],addr[3]));
memset(&(tcp_sock.sin_zero), 0, sizeof(tcp_sock.sin_zero));
ret = connect(SOCKET_CMD, addr, port);
ret = connect(cmd_fd, (struct sockaddr *)&tcp_sock, sizeof(struct sockaddr));
if(ret != 1){
printf("connect server failed\r\n");
return 0;
@ -152,7 +152,6 @@ int GetFileSize(char * name)
int Download(char *name)
{
int fd = socket(AF_INET, SOCK_STREAM, 0);
wiz_socket(SOCKET_DATA, Sn_MR_TCP, 12345, 0);
int len = GetFileSize(name);
char *buf = malloc(len+1);
printf("downloading file %s\r\n",name);
@ -166,7 +165,11 @@ int Download(char *name)
closesocket(fd);
return 0;
}
ret = wiz_sock_connect(SOCKET_DATA,addr,port);
struct sockaddr_in tcp_sock;
tcp_sock.sin_family = AF_INET;
tcp_sock.sin_port = htons(port);
tcp_sock.sin_addr.s_addr = PP_HTONL(LWIP_MAKEU32(addr[0],addr[1],addr[2],addr[3]));
ret = connect(fd,(struct sockaddr *)&addr,port);
if(ret != 1){
closesocket(fd);
printf("fail to connect data port\r\n");
@ -184,7 +187,7 @@ int Download(char *name)
return 0;
}
for(it = 0;it < len;it += ret){
ret = wiz_sock_recv(SOCKET_DATA,((char *)buf + it),len);
ret = recv(fd,((char *)buf + it),len,0);
if(ret<0){
printf("download was interupted\r\n");
break;
@ -200,8 +203,8 @@ int Download(char *name)
closesocket(fd);
printf("creating file %s ....\r\n",name);
int fd=open(name,O_RDWR | O_CREAT);
if(fd > 0){
int file=open(name,O_RDWR | O_CREAT);
if(file > 0){
ret = write(fd,buf,strlen(buf));
if(ret < 0 ){
printf("write failed\r\n");