最近在进行NDK的网络开发,其中遇到了一个问题比较疑惑:
rc = NC_NetStart( hcfg, NetworkOpen, NetworkClose, NetworkIPAddr );
这个函数中注册了3个函数,NetworkIPAddr函数我看NDK的说明文档里面说当IP地址变化的时候回调用它,那我的疑问是什么时候IP地址会变化呢?
如果说刚刚启动的时候,系统进行IP配置后调用它,我可以理解。但是当系统完全启动,网络已经正常工作后,什么情况下IP还会变动呢?
之所以提到这个问题是因为,最近开发的过程中,遇到了这样的问题。
我们的工程是这样的思路,用两个核,一个核专门用于接收网络数据,从PC端,放入公共内存,另一个核负责处理收到的数据,两个核用IPC通信,在实际应用中,我发现,网络核在接收到PC端的一部分数据后,突然就调用了NetworkIPAddr这个函数,这样导致打乱了整个系统的工作。
而这个NetworkIPAddr函数打印出来的信息是:
Network Removed: If-l:192.168.2.100
意思就应该是网络移除什么的。NetworkIPAddr这个函数我是直接copy的MCSDK ndk的 client例程的。
所以,请大神指点一下,NetworkIPAddr这个函数在什么情况下会调用(我知道IP变化的时候调用,可是什么情况下IP会变化???),以及这个函数的三个参数是什么意思?