先说点题外话。
把代码从QualNet移植到EXata的过程中,需要逐个函数、逐个数据结构的核对,因为两个软件有些位置会有细微的差别。如获取节点的网络层数据,在QualNet中是:
NetworkDataIp* ip = node->networkData.networkVar;
在EXata中是:
NetworkDataIp* ip = node->m_networkData->get_networkVar();
因为在Node数据结构中,EXata把网络层数据m_networkData以NetworkData *指针形式定义,且在NetworkData数据结构中,networkVar是私有变量,必须用函数get_networkVar()获取而不能直接用node->m_networkData->networkVar获取。
另外一个需要格外注意的是传输层函数,有些EXata中有,QualNet中没有,有些则刚好相反。总之是把每个调用的函数都搜索一下定义,看看有没有,看看参数是否一样。总体上改动不大,很快就能完成移植。
问题来了。
本来一切顺利,可是好不容易编译成功(EXata编译一次需要两个多小时,QualNet十几分钟就能搞定,有条件的朋友可以在QualNet上开发,然后移植到EXata