OMNeT ++:omnetpp.ini文件中的参数优先级。我创建特定值的方式会导致错误

时间:2012-04-04 12:11:22

标签: simulation

第9.3.1章的优先部分告诉我,我应该首先应用特殊情况,然后应用普通情况。

[General]
*.host[0].waitTime = 5ms   # specifics come first
*.host[3].waitTime = 6ms
*.host[*].waitTime = 10ms  # catch-all comes last

我在omnetpp.ini文件中有以下行:

**.server[*].tcpApp[0].port = 1000

**.pods[0..1].**.server[*].tcpApp[0].port = 80

**.pods[2..3].**.server[*].tcpApp[0].port = 21

此代码有效,但每个服务器在检查参数时都有1000而不是特殊情况80和21.所以我希望它看起来像这样:

**.pods[0..1].**.server[*].tcpApp[0].port = 80

**.pods[2..3].**.server[*].tcpApp[0].port = 21

**.server[*].tcpApp[0].port = 1000

然而,这会产生一个错误,该错误由我的服务器构建的StandardHost模块的TCP模块中的空指针异常组成。

在ned文件中,参数声明如下:

    int port = default(1000); // port number to listen on

离开那个全能的线路也会导致错误。只有将最后一行放在另外两行之上才能让模拟运行。

可以在INET的TCPServerHostApp.ned中找到port参数的示例。我想为服务器上运行的不同服务分配不同的端口。

您对我有什么建议,正确应用这些参数?我设置参数的方式是否有错误,或者我是否需要在初始化过程中在某处设置端口(这对我来说没有意义)?

编辑: 业力系统不允许我回答这个问题,所以这就是问题的原因:

嗯,问题发生在另一个地方。当使用connect(ipaddr,port)连接新套接字时,我从作业请求消息中得到了错误的端口。

在流量生成模块中,我读取错误的端口以连接到服务器,这导致错误,因为正在使用的端口始终是默认值= 1000而不是80或21。

服务器预期80或21,当套接字尝试连接端口1000时导致崩溃。

1 个答案:

答案 0 :(得分:0)

只想在这里添加这个,所以每个人都看到我发现了错误。

嗯,问题发生在另一个地方。使用connect(ipaddr, port)连接新套接字时,我从作业请求消息中得到了错误的端口。

在流量生成模块中,我读取错误的端口以连接到服务器,这导致错误,因为正在使用的端口始终是默认(= 1000)而不是80 or 21

当套接字试图与80 or 21连接时,服务器预期1000导致崩溃。