最近移植柯老师的示例代码measure/mudp 相关的代码,发现了问题,但是网上也没找到解决方法,很多人有相同问题但是没有最后解决。
1、在Makefile中不加 -fpermissive, 会报错误,说mUdpAgent 不能直接调用UdpAgent(),
- CCOPT
= -Wall -Wno-write-strings -fpermissive
- invalid
command name "Agent/TCPSink/mTCPSink" - while
executing - "Agent/TCPSink/mTCPSink
creat -o83"
2、具体解决方案:
在源代码中
- mUdpAgent::mUdpAgent()
: id_(0), openfile(0) - {
-
bind("packetSize_", &size_); -
UdpAgent::UdpAgent(); - }
- mUdpAgent::mUdpAgent()
:UdpAgent(), id_(0), openfile(0) - {
-
bind("packetSize_", &size_); - }
添加mUDP.mUDPSink
mUDP是UDP的延伸,除了具有UDP的功能外,还能记录所发送的包的信息。mUdpSink可以把接收到的包的信息记录到文件中。
这篇文章是基于柯老师的making NS-2 simulate an 802.11b link
希望能对大家有所帮助:
在阅读柯老师的仿真代码前,请先阅读一下
http://www.ece.rice.edu/~jpr/ns/docs/ns-802_11b.html
这篇文章是对实际效果和仿真效果进行比较,修改一些仿真参数,以达到更接近实际的效果。
http://140.116.72.80/~smallko/ns2/tool_en.htm
而这篇文章是在仿真前要着手进行的准备工作,下面我会具体介绍一下文章中的内容。(其实也就是翻译整理一下了)
准备工作的基本思想是插入两个参数“sendtime_”和“pkt_id_”到“hdr_cmn” header代码里面去。当分组被发送,分组id和发送时间被记录到发送端的trace文件中。而当分组被目的端接受,分组id和接收时间被记录到接收端的trace文件中。所以作者预备了两个agent,mudp和mudpsink去完成这项工作,mudp是udp agent的扩展,它只是越过发送消息功能,将分组id和发送时间下载到用户指定的文件中。
以下是具体的实现过程:
2.
3.
4.
struct hdr_cmn {
5.
具体加入位置如下:找到OBJ_CC
OBJ_CC = \
measure/mudp.o measure/mudpsink.o
netview.o netmodel.o edge.o packet.o node.o main.o \
trace.o queue.o drop.o animation.o agent.o feature.o \
route.o transform.o paint.o state.o monitor.o anetmodel.o \
random.o rng.o view.o graphview.o netgraph.o tracehook.o\
lan.o psview.o group.o editview.o tag.o address.o animator.o \
wnetmodel.o nam_stream.o enetmodel.o testview.o parser.o \
trafficsource.o lossmodel.o queuehandle.o \
6.
具体插入位置如下:
########################################################
# Debojyoti added this
Agent/mUDP set packetSize_ 1000
Simulator set useasim_ 1
Asim set debug_ false
注:插入位置不是固定的,只是我插入在这里而已:D
7.
尤其注意步骤5和7。
将http://140.116.72.80/~smallko/ns2/80211b.htm中的test代码拷入你的ns2种的test.tcl文件,然后在命令行输入ns test.tcl 3000 144
呵呵,是否成功运行了呢?以后的分析工作,我就不具体介绍了,大家自己研究一下吧,在此申明,我的仿真平台是winxp sp2+cygwin+ns2-2.27,是可以成功运行这个test.tcl例子的,其他平台我不敢保证,但希望大家都能成功运行仿真。
我也是ns2的初学者,希望大家能够共同学习,共同进步。
摘自http://hi.baidu.com/savin2009/blog/item/2f8eee3ffab07a3571cf6c39