• 【NS2】添加mUDP、mUdpSink和mTcpSink模块


    根据柯老师的教材可知,mUDP是UDP的延伸,除了具有UDP的功能外,还能记录所发送的包的信息。mUdpSink可以把接收到的包的信息记录 到文件中。mTcpSink是TCPsink的延伸,除了具有TCPSink功能外,还能记录所发出的包的信息。具体的添加步骤如下:

    1.下载mUDP, mUdpSink的文件,要下载的有下列几个文件:
           mudp.ccmudp.hmudpsink.ccmudpsink.h

           下载地址:http://140.116.72.80/~smallko/ns2/measure/

    2.在 /ns-allinone-2.**/ns-2.** 目录新建measure文件夹,把这四个文件放入其中。

    3.修改/ns-allinone-2.**/ns-2.**/common/packet.h,把如下程序加入struct hdr_cmn{}中。

                int frametype_; //added by smallko

                double  sendtime_;  // added by smallko

                unsigned int pkt_id_; // added by smallko

                unsigned int frame_pkt_id_; //added by smallko

    4.分别在/ns-allinone-2.**/ns-2.**/Makefile和Makefile.in增加如下一行。
           xcp/xcpq.o xcp/xcp.o xcp/xcp-end-sys.o // 这行之后

           measure/mtcpsink.o measure/mudp.o measure/mudpsink.o   //此行为增加的

    5.在/ns-allinone-2.**/ns-2.**/tcl/lib/ns-default.tcl增加如下一行。

       Delayer set debug_ false // 这行之后

       Agent/mUDP set packetSize_ 1000   //此行为增加的

    6.在/ns-allinone-2.**/ns-2.**目录下执行./configure;make clean;make命令,就OK了。

    最近移植柯老师的示例代码measure/mudp 相关的代码,发现了问题,但是网上也没找到解决方法,很多人有相同问题但是没有最后解决。

    1、在Makefile中不加 -fpermissive, 会报错误,说mUdpAgent 不能直接调用UdpAgent(),

      在makefile中加入

    1. CCOPT   =  -Wall -Wno-write-strings -fpermissive  

       编译能通过,但是运行的时候会出现

    1. invalid command name "Agent/TCPSink/mTCPSink"  
    2. while executing  
    3. "Agent/TCPSink/mTCPSink   creat -o83"  

       因此也是不能通过的。

    2、具体解决方案:

    在源代码中

    1. mUdpAgent::mUdpAgent() : id_(0), openfile(0)  
    2. {  
    3.         bind("packetSize_", &size_);  
    4.        UdpAgent::UdpAgent();  
    5. }  

    UdpAgent::UdpAgent()调用是有问题的,改为:

    1. mUdpAgent::mUdpAgent() :UdpAgent(), id_(0), openfile(0)  
    2. {  
    3.         bind("packetSize_", &size_);  
    4. }  

    重新编译后,运行通过,不会出现1中的问题。

  • 相关阅读:
    Vue入门教程 第一篇 (概念及初始化)
    安装配置MongoDB
    Windows搭建SVN服务器
    MySql + Workbench使用教程
    Node.js入门教程 第六篇 (连接使用MySql)
    Node.js入门教程 第五篇 (Express框架)
    Node.js入门教程 第四篇 (流及文件操作)
    Node.js入门教程 第三篇 (模块、路由)
    Node.js入门教程 第二篇 (HelloWorld及事件分发)
    Node.js入门教程 第一篇 (概念原理及环境配置)
  • 原文地址:https://www.cnblogs.com/helloWaston/p/4549735.html
Copyright © 2020-2023  润新知