Просмотр исходного кода

fix:luatos socket 在listen时多消耗了tcp pcb

alienwalker 3 лет назад
Родитель
Сommit
4d7caed376
2 измененных файлов с 2 добавлено и 3 удалено
  1. 0 1
      components/network/lwip/port/net_lwip.c
  2. 2 2
      demo/socket/EC618/server_demo.lua

+ 0 - 1
components/network/lwip/port/net_lwip.c

@@ -1130,7 +1130,6 @@ static void net_lwip_task(void *param)
 				net_lwip_callback_to_nw_task(adapter_index, EV_NW_SOCKET_ERROR, socket_id, 0, 0);
 				break;
 			}
-			net_lwip_create_socket_now(adapter_index, socket_id);
 			tcp_bind(prvlwip.socket[socket_id].pcb.tcp, NULL, prvlwip.socket[socket_id].local_port);
 	        IP_SET_TYPE_VAL(prvlwip.socket[socket_id].pcb.tcp->local_ip,  IPADDR_TYPE_ANY);
 	        IP_SET_TYPE_VAL(prvlwip.socket[socket_id].pcb.tcp->remote_ip, IPADDR_TYPE_ANY);

+ 2 - 2
demo/socket/EC618/server_demo.lua

@@ -65,7 +65,7 @@ local function serTask(port)
 			if rx_buff:len() > 1024 then
 				rx_buff:resize(1024)
 			end
-			if cnt < 5 then
+			if cnt < 20 then
 				log.info(rtos.meminfo("sys"))
 				result, param = libnet.wait(dName, 30000, netc)
 				if not result then
@@ -73,7 +73,7 @@ local function serTask(port)
 					break
 				end
 			else
-				log.info("接收数据5次以上,演示主动断开连接")
+				log.info("接收数据20次以上,演示主动断开连接")
 				result = false
 			end
 			log.info(rtos.meminfo("sys"))