第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时导致崩溃。
答案 0 :(得分:0)
只想在这里添加这个,所以每个人都看到我发现了错误。
嗯,问题发生在另一个地方。使用connect(ipaddr, port)
连接新套接字时,我从作业请求消息中得到了错误的端口。
在流量生成模块中,我读取错误的端口以连接到服务器,这导致错误,因为正在使用的端口始终是默认(= 1000)
而不是80 or 21
。
当套接字试图与80 or 21
连接时,服务器预期1000
导致崩溃。