0

9.3.1 章の優先順位のセクションでは、最初に特殊なケースを適用し、次に一般的なケースを適用する必要があると述べています。

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

omn​​etpp.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 モジュールでの null ポインター例外で構成されます。

ned ファイルでは、パラメーターは次のように宣言されています。

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

そのキャッチオール行をそのままにしておくと、エラーも発生します。最後の行を他の 2 行の上に置くだけで、シミュレーションを実行できます。

port パラメーターの例は、INET の TCPServerHostApp.ned にあります。サーバー上で実行する必要があるさまざまなサービスにさまざまなポートを割り当てたいと考えています。

これらのパラメーターを正しく適用するためのアドバイスは何ですか? パラメータを設定する方法にエラーがありますか、それとも初期化プロセス中に自分でポートを設定する必要がありますか (これは意味がありません)。

編集:カルマシステムでは、まだ質問に答えることができないため、問題の原因は次のとおりです。

さて、問題は別の場所にありました。connect(ipaddr, port) で新しいソケットを接続するときに、ジョブ要求メッセージから間違ったポートを取得しました。

トラフィック生成モジュールで、サーバーへの接続用に間違ったポートを読み取ったため、エラーが発生しました。これは、使用されているポートが常にデフォルト = 80 または 21 ではなく 1000 であったためです。

サーバーは 80 または 21 を予期していたため、ソケットがポート 1000 に接続しようとしたときにクラッシュが発生しました。

4

1 に答える 1

0

ここにもこれを追加したいので、誰もがエラーを見つけたことがわかります。

さて、問題は別の場所にありました。で新しいソケットを接続するときにconnect(ipaddr, port)、ジョブ リクエスト メッセージから間違ったポートを取得しました。

トラフィック生成モジュールで、サーバーへの接続用に間違ったポートを読み取ったため、エラーが発生しました。使用されているポートは(= 1000)常に80 or 21.

ソケットが に接続しようとしたときに、サーバーが を予期80 or 21していたため、クラッシュが発生しました1000

于 2012-04-04T20:35:56.563 に答える