实验52 main.c 中:
if(tcp_client_tsta!=tcp_client_sta)//TCP Client 状态改变
{
if(tcp_client_sta&(1<<7))LCD_ShowString(30,250,200,16,16,"TCP Client Connected ");
else LCD_ShowString(30,250,200,16,16,"TCP Client Disconnected");
if(tcp_client_sta&(1<<6)) // 收到新数据
{
LCD_Fill(86,270,240,286,WHITE); //清除之前的显示
LCD_ShowString(86,270,154,16,16,tcp_client_databuf);
printf("TCP Client RX:%s\r\n",tcp_client_databuf);//打印数据
tcp_client_sta&=~(1<<6); //标记数据已经被处理
}
tcp_client_tsta=tcp_client_sta;
}
在程序调试中发现: 成功连接上服务器后,如果拔掉网线,这个模块底层不能将连接已经断开的信息反馈给应用层,tcp_client_demo.c中的连接终止函数tcp_client_aborted()、连接超时函数uip_timedout() 、连接关闭函数uip_closed()都不会改变都不会改变 客户端的状态u8 tcp_client_sta;
重新将网线插上也是一样的,没有反应。
是不是还有其它函数来通知应用层网络连接被断开了呢???
请求高人指点。
|