先看一下ushare.c中libupnp的初始化过程,如果你对libupnp的那两个例子程序很熟的话,看这个应该没有什么问题,过程差不多。UpnpInit,UpnpSetMaxContentLength加这个东西的原因是ushare里面有很多东西是直接放在内存中,而不是磁盘文件中,只是怕内存溢出,UpnpEnableWebserver,UpnpSetVirtualDirCallbacks,UpnpAddVirtualDir这三个函数是一起的,一般来说搞个UpnpSetWebServerRootDir就搞定了。接下来有点诡异,我也不知道它为什么要这么搞,UpnpRegisterRootDevice2,UpnpUnRegisterRootDevice,UpnpRegisterRootDevice2,先注册设备,然后取消注册,然后又再注册了一次。
UpnpUnRegisterRootDevice看了一下文档,说该函数会发送一些设备不可用的通告信息,如果之前启动过了,发送了一些通告信息,而且这些通告信息尚未过期。这只是我的猜测,上了百度知道问,也没人知道。PS:发了邮件给ushare的邮件列表也没有人回复,是不是那些人都不会中文啊,囧!
国际惯例,贴代码凑字数。