虽然已经移植成功uIP1.0了,但主程序我其实一直还是在用uIP-AVR0.9的主程序。
通过这两天实验,发现我如何都不能实验断线重连,于是今天仔细看了一下主程序的结构。
发现主程序,只做了非常简单的工作:
while(1){
轮循网卡;
如果(没有新数据){ 每次定时时间到:
UIP处理每个存在的链接;
ARP刷新;
}
否则{
处理接收到的数据;
}
发现问题了么?如果你的连接断线了,UIP会关闭掉的。如果已经关闭了,那么就不会有新的数据。如果没有新的数据,就除了ARP刷新就什么也不处理了……
也就是说,你写在APPCALL中的程序,根本没**到它们去执行了……
所以,你任何在APPCALL中的判断断线、重新连接的代码全部是徒劳的~
|
|