Selaa lähdekoodia

update:优化ftp下载速度

Dozingfiretruck 4 kuukautta sitten
vanhempi
sitoutus
995c2f2f75
1 muutettua tiedostoa jossa 2 lisäystä ja 4 poistoa
  1. 2 4
      components/network/libftp/luat_ftp_client.c

+ 2 - 4
components/network/libftp/luat_ftp_client.c

@@ -126,9 +126,6 @@ static int32_t luat_ftp_data_callback(void *data, void *param){
 			ret = network_rx(g_s_ftp.network->data_netc, rx_buffer, rx_len, 0, NULL, NULL, &rx_len);
 			// LLOGD("luat_ftp_data_callback network_rx ret:%d rx_len:%d",ret,rx_len);
 			if (!ret && rx_len > 0){
-                if (g_s_ftp.network->remote_file_size){
-                    g_s_ftp.network->download_file_size += rx_len;
-                }
 				if (g_s_ftp.fd){
 					luat_rtos_event_send(g_s_ftp.task_handle, FTP_EVENT_DATA_WRITE_FILE, (uint32_t)rx_buffer, rx_len, 0, LUAT_WAIT_FOREVER);
 					rx_buffer = NULL;
@@ -172,6 +169,7 @@ static int32_t ftp_task_cb(void *pdata, void *param){
 	switch(event->ID){
 	case FTP_EVENT_DATA_WRITE_FILE:
 		if (g_s_ftp.fd){
+            g_s_ftp.network->download_file_size += event->Param2;
 			luat_fs_fwrite((void*)event->Param1, event->Param2, 1, g_s_ftp.fd);
 			luat_heap_free((void*)event->Param1);
 		}
@@ -403,7 +401,7 @@ static int pasv_recv(void){
 	LLOGD("%s %d rx_finish:%d data_netc_online:%d Pos:%d ",__FUNCTION__ ,__LINE__ ,rx_finish, g_s_ftp.network->data_netc_online, g_s_ftp.result_buffer.Pos);
     while(!rx_finish || ((g_s_ftp.network->remote_file_size && (g_s_ftp.network->remote_file_size != g_s_ftp.network->download_file_size))))	//data通道未断开或者已经接收到数据了
 	{
-		ret = luat_ftp_cmd_recv(&g_s_ftp,g_s_ftp.network->cmd_recv_data,&g_s_ftp.network->cmd_recv_len,FTP_SOCKET_TIMEOUT);
+		ret = luat_ftp_cmd_recv(&g_s_ftp,g_s_ftp.network->cmd_recv_data,&g_s_ftp.network->cmd_recv_len,FTP_SOCKET_TIMEOUT/10);
 		if (ret<0){
 			LLOGD("%s %d rx error!%d",__FUNCTION__ ,__LINE__ , ret);
 			return -1;