本来应该要做ns3的仿真,但早上心情不好,所以就做了之前的哪个有错误的OPNET仿真,因为之前不知道那里出了问题,心里很不爽,感觉自己的编程技术太差,一直很郁闷。
早上再做的时候,看到了代码里有
printf("o");
这个是用debug时显示的输出信息,所以就用最笨的办法,给每一段代码前加上这么一句,来定位错误位置。
当写到pk_pk_send处的时候,发现自己同时写了两个pk_pk_send,突然想到之前在群里给人说的,pk_pk_send函数在发送完数据包后,会把数据包销毁掉,因此,连着两个op_pk_send函数发送同一个数据包,必然会出错。
解决的办法就是,可以在发送数据包之前将其copy到另一个packet里,然后分别发送,这样就没有问题了。当然你也可以另外新建一个包,将前面的包内容复制到新包里,然后发送,也是可以的,就是麻烦点。
后语:用本办法解决问题,但是觉得还是应该学学OPNET的debug。
早上再做的时候,看到了代码里有
printf("o");
这个是用debug时显示的输出信息,所以就用最笨的办法,给每一段代码前加上这么一句,来定位错误位置。
当写到pk_pk_send处的时候,发现自己同时写了两个pk_pk_send,突然想到之前在群里给人说的,pk_pk_send函数在发送完数据包后,会把数据包销毁掉,因此,连着两个op_pk_send函数发送同一个数据包,必然会出错。
解决的办法就是,可以在发送数据包之前将其copy到另一个packet里,然后分别发送,这样就没有问题了。当然你也可以另外新建一个包,将前面的包内容复制到新包里,然后发送,也是可以的,就是麻烦点。
后语:用本办法解决问题,但是觉得还是应该学学OPNET的debug。
转载于:https://blog.51cto.com/yangfei1/315409