2012-04-04 1 views
0

Der Vorrang Abschnitt in Kapitel 9.3.1 sagt mir, dass ich die Sonderfälle zunächst gelten soll und dann die allgemeinen diejenigen.OMNeT ++: Vorrang von Parametern in omnetpp.ini-Datei. Die Art, wie ich nehmen für bestimmte Werte zu schaffen verursacht Fehler

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

Ich habe folgenden Zeilen in der Datei omnetpp.ini:

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

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

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

Dieser Code funktioniert, aber jeder Server 1000 hat, wenn die Parameter überprüft und nicht die Sonderfälle 80 und 21. Deshalb möchte ich es aussehen wie folgt aus:

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

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

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

Doch dies schafft einen Fehler, der in dem TCP-Modul des StandardHost Modul meinem Server eines null-Zeiger Ausnahme besteht, ist auf bauen.

In der ned Datei wird der Parameter wie folgt erklärt:

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

verlassen, dass allumfassende Linie aus zu den Fehler verursacht. Nur wenn die letzte Zeile über den anderen beiden genommen wird, kann die Simulation durchlaufen werden.

Ein Beispiel für den Port-Parameter kann in TCPServerHostApp.ned von INET finden. Ich möchte verschiedene Ports für verschiedene Dienste zuweisen, die auf den Servern laufen sollen.

Was ist Ihr Rat für mich, diese Parameter richtig anzuwenden? Gibt es einen Fehler in der Art und Weise stelle ich die Parameter, oder muss ich die Ports irgendwo während der Initialisierung festlegen müssen selbst (was für mich keinen Sinn machen würde)?

Edit: Das Karma-System mir nicht zulässt, dass die Frage noch beantworten, so ist hier die Ursache für mein Problem:

Nun, das Problem an einem anderen Ort war. Wenn ich einen neuen Socket mit connect (ipaddr, port) verbinde, habe ich den falschen Port von der Jobanforderungsnachricht erhalten.

An der Verkehrserzeugungsmodul, gelesen ich den falschen Port für den Anschluss an den Server, der einen Fehler verursacht, da der Port immer wurde verwendet, wobei der Standardwert = 1000 anstelle von 80 oder 21

Die Server erwartet 80 oder 21, einen Absturz zu verursachen, wenn der Sockel mit Anschluss wollen 1000.

Antwort

0

einfach zu verbinden versucht, auch diese hier hinzufügen, damit jeder sieht ich den Fehler gefunden.

Nun, das war das Problem an einem anderen Ort. Wenn ich einen neuen Socket mit connect(ipaddr, port) anschliesse, bekam ich den falschen Port von einer Jobanforderungsnachricht.

Am Datenverkehrserzeugungsmodul habe ich den falschen Anschluss für die Verbindung mit dem Server gelesen, der einen Fehler verursachte, da der verwendete Port immer der Standard (= 1000) anstelle von 80 or 21 war.

Die Server erwarteten 80 or 21, was zu einem Absturz führte, als der Socket versuchte, sich mit 1000 zu verbinden.

Verwandte Themen