NS-3使用日记<一>
最近做实验,感觉还是要把实验中遇到的问题写下来,好记性不如烂笔头嘛。方便自己查阅,也方便别人参考。毕竟老师说了,SDN现在这个实验是要做九代单传的了。
今天主要是想把SDN.cc的配置变得更加流程化、懒人化,毕竟一下子要操作12个流,一个个写socket都要写死人了。这次遇到的问题是,怎么在callback的时候传入自己的参数,毕竟这样才能分辨出是哪辆Source发的。
首先是理解了Callback。就是高层应用调用底层库函数再调用高层函数的一个做法。参考。我很快就发现,这个回调函数是跟一个路径上的文件绑在一起的……Config::ConnectWithoutcontect (temp1,MakeCallback(&VanetSim::TXTraces, this));
其中this是指该实例下的TXTraces函数。这意味着我没法控制文件上的输出,也就没法控制回调函数的输入了。后来我又想往packet里面加Tag或者Attribute,发现要自己实现具体的序列化和解序列化的过程,很麻烦。Attribute的本质好像是压在data里的,而Tag好像是和data独立存的。无一例外都要自己定义内容。
后来TXTraces是通过改成Connect,来解决的。这样回调函数会多收一个参数string path,对应绑定的那个path,里