prima Sache! Wann immer jemand die Funktionalität der CS2, teilweise zumindest, aber garantiert das Feeling haben wollte, dann kann er es.
Leider gibt es ein Problem: dein neuer Provider Phist irgendwas auf deiner Seite, denn mein Antivirenprogramm (GData Internet Security 25.0.2.4 vom 98.01.2015) meldet sich:
Quote
Phishing beim Öffnen von Web-Seiten gefunden.
Adresse: http://www.bplaced.net/404
Status: Der Zugriff wurde verweigert.
Ist das auch bei anderen so?
Ansonsten, falls die Hosts-Datei nicht speicherbar ist, leigt das an den fehlenden Admin-Rechten. Dann muss man filgender maßen vorgehen:
Quote
die Hosts-Datei zu bearbeiten:
->Öffnen Sie das Startmenü. Hierzu können Sie die Windows-Taste auf der Tastatur drücken.
_>Geben Sie im Suchfeld "Editor" ein
->Machen Sie auf den Eintrag "Editor" (Notizblock-Symbol) einen Rechtsklick mit der Maus.
->Wählen Sie "Als Administrator ausführen". Das Editor-Fenster öffnet sich.
Wenn Sie den Editor als Administrator geöffnet haben, kann’s ans Eingemachte gehen: die Hosts-Datei bearbeiten.
->Drücken und halten Sie innerhalb vom Editor die Strg-Taste und "O".
->Navigieren Sie im neu geöffneten Fenster zu C:\Windows\System32\drivers\etc. Achten Sie darauf, dass unten rechts "Alle Dateien (*.*)" und nicht "Textdateien (*.txt)" ausgewählt ist, damit die Hosts-Datei auch angezeigt wird.
->Haben Sie die Hosts-Datei geöffnet, sehen Sie einige englischsprachige Kommentare, vor denen das #-Symbol am Zeilenanfang steht. Mit dem Doppelkreuz können Sie selbst auch Kommentare und Notizen schreiben, die nur für Sie als Info dienen.
Möchten Sie nun einen neuen Eintrag hinzufügen, machen Sie dies am besten unterhalb von den Kommentaren. Jeder Eintrag sollte auf einer separaten Zeile stehen. An den Zeilenanfang schreiben Sie die IP-Adresse und dahinter, mit mindestens einem Leerzeichen getrennt, den zugehörigen Hostname (siehe Screenshot).
->Möchten Sie sämtlichen Netzverkehr zu einer bestimmten Domain mit Hilfe der Hosts-Datei blockieren, nutzen Sie dazu "127.0.0.1" als IP-Adresse. Im Screenshot sehen Sie beispielsweise die Zeile "127.0.0.1 google.com" – Dadurch wird der Zugriff auf google.com blockiert. Sie können die Seite also zum Beispiel nicht mehr im Browser ansteuern.
->Haben Sie die Hosts-Datei wie gewünscht bearbeitet, drücken und halten Sie im Editor-Fenster die Strg-Taste und "S" auf der Tastatur, um die geänderte Windows-Datei abzuspeichern.
Die Tipps beziehen sich auf ein System mit Windows 7 Ultimate 64 bit. Unter Windows 8 öffnen Sie den Editor über "Alle Apps" (Rechtsklick im Startscreen) und dann weit rechts unter "Windows Zubehör". Der restliche Lösungsweg ist derselbe.
Ach noch eins: deine Beispile IP Adresse ist etwas hochgegriffen im wahrsten Sinne des Wortes. Die Zahlen 255 und 0 sind eigentlich reserviert und sollten im Prinzip nicht verwendet werden. Dann klappt es im allgemeinen besser. Also sowas wie das beliebte 192.168.1.10 für die LAN Schnittstelle, Subnetzmaske dann 255.255.255.0. Denn wenn das so angegeben ist bleibt alles in dem Netz 192.168.1.x und die letzte Zahl kann beliebig gewählt werden. Gateway wäre dann 192.168.1.1. DNS ebenfalls 192.168.1.1 (kann vielleicht sogar leer bleiben).
Die Zuordnung in der Hosts-Datei lautet dann "192.168.1.10 cs2host".
Das reicht aus wenn das Hausnetz fürs WLAN die IP 192.168.2.x hat. Auch dann wird nichts dorthin übertragen.
Aber warum willst du denn das LAN vom restlichen Netz (WLAN zum Beispiel) trennen?
vielleicht meinen wir ja das Gleiche, es ist nur unglücklich formuliert. Hatte versucht es einfach dar zu stellen:
- Die IP-Adresse ist dazu da, das Gerät zu adressieren.
- Der Port, egal ob UDP oder TCP wird dazu verwendet, ein Programm zu adressieren, welches auf dem Gerät läuft, also zwischen Programm A und Programm B auf demselben Gerät zu unterscheiden.
-> Die PC-CS2 von Märklin verlangt nicht exklusiv nach der IP-Adresse (habe es selbst getestet), sondern exklusiv nach den von Michael genannten Ports. So kann beispielsweise ein TFTP-Server (Port UDP 69) oder ein Syslog-Server (Port UDP 514) ohne Probleme auf derselben IP-Adresse genutzt werden!
Man kann aber nicht 2 mal die PC-CS2 starten, da ja beim ersten Start die genannten Ports belegt werden, und somit für den zweiten Programmstart nicht mehr verfügbar sind. Es entstünde ja sonst das Problem, dass das Betriebssystem nicht wüsste, welcher PC-CS2 es welches eingehende Datenpaket zustellen soll.
Da weiter oben beschrieben war, dass bei der Nutzung Deines Serverprogramms zusammen mit der PC-CS2 kein sonstiger Netzwerkzugriff mehr funktioniert, z.B. eine Webseite im Internet mit dem Browser aufzurufen, war naheliegend, dass das Serverprogramm sich alle Datenpakete greift, ohne einen Port zu beachten. Denn die PC-CS2 macht es nicht, wie ja noch mal getestet wurde. Selbst getestet hatte ich das mit dem Serverprogramm mangels aktueller Möglichkeit nicht, was dem Beitrag ja zu entnehmen war. Technisch wäre es aber möglich, dass das Serverprogramm alle Datenpakete abfängt, je nach dem, welche Schnittstelle man beim Programmieren benutzt hat.
Mir liegt es auch fern, da etwas zu kritisieren, ganz im Gegenteil, ich finde es klasse, was hier auf die Beine gestellt wird. Mein Ansatz war lediglich, etwas dazu bei zu tragen zur Lösungsfindung, wenn die Beschreibung weiter oben im Thema richtig war.
was auch immer das Märklin-Programm so alles abfragt oder benötigt ...
Als ich am Anfang der Programmierung war, bekam ich vom Märklin-Programm des öfteren diese ominöse Meldung. Und das, obwohl keine andere Instanz aktiv war.
Wenn es also jemand schafft, das Märklin-Programm mit meinem Interface in einer aktiven, offenen Netzwerk-Umgebung, wo zich andere Ressourcen auch aus dieselbe IP zugreifen, zum Laufen zu bringen - um so besser.
Ich kann es nicht testen, da mein Laptop nicht mehr ans Netz darf (veraltetes, schutzloses Betriebssystem).
Daher hatte ich eine Pseudo-IP eingerichtet und es erfolgreich zum Laufen gebracht. Jetzt läuft es auch im rechnerinternen Loopback-Netztreiber.
Damit ist die Sache für mich erledigt.
Ich finde es nur Schade, daß hier immer wieder falsch zitiert wird.
AndreasWB schrieb:
Tja Michael, genau da liegt das Problem, wenn diese IP-Adresse durch eine andere Ressource belegt ist. Dann bekommst Du vom Märklin-Programm die Meldung "UDP-Port konnte nicht gebunden werden. Ist etwa bereits eine Instanz dieses Programms in Betrieb".
Da ist aber nicht die IP Adresse belegt. Das hatte ich doch schon geschrieben. Da ist die Portnummer schon durch ein Programm belegt. Genau das steht doch in der Fehlermeldung. Joachim hat ja schon versucht, das nochmals zu erklären. Jedes Programm, das über Netzwerk einen Dienst anbietet, öffnet einen Socket, den es an eine Portnummer bindet. Die Portnummer definiert quasi den Dienst. Damit können verschiedene Dienste gleichzeitig unter einer IP Adresse erreichbar sein. Bei den von Märklin benutzten Portnummern handelt es sich nicht um registrierte Ports, die schon fest für einen Dienst reserviert sind. Es könnte also sein, daß ein ein anderes Programm auch diesen Port benutzt. Und mit tcpview aus dem sysinternal Paket kannst du sogar das Programm finden. Das tcpview zeigt ja alle belegten Ports.
Wenn dein Server richtig einen UDP und einen TCP Socket öffnet und den jeweils an die Portnummer 15731 bindet, würde ich kein Problem erwarten. Der GFP-Simulator von Märklin macht ja auch nichts anderes und funktioniert. Das dabei plötzlich Netzwerkverbindungen nicht gehen, darf nicht sein.
Ich finde es schade, daß du das Problem mit dem merkwürdigen Hack eines zweiten Netzwerkinterfaces als erledigt betrachten möchtest. Hier schreiben doch auch Leute, die etwas Wissen über Netzwerk haben. Und ich wohne sogar in deiner Nähe und könnte mit dir zusammen testen. Wäre es nicht sinnvoller, nach der Ursache des Problems zu forschen? Dazu braucht der Computer, auf dem das CS2-PC und dein Server läuft, auch keine Internet Verbindung. Aber wahrscheinlich muß man mal einen Blick in den Quellcode werfen.
AndreasWB schrieb:
Als ich am Anfang der Programmierung war, bekam ich vom Märklin-Programm des öfteren diese ominöse Meldung. Und das, obwohl keine andere Instanz aktiv war.
Mal eine Frage dazu.
In welcher Reihenfolge hast du denn die Programme gestartet?
Zuerst dein Programm und dann das CS2-PC Programm? Wenn ja, hat das CS2-PC Programm keine CS2 gefunden und versucht, den GFP-Simulator zu starten? Was dann auch nicht ging, da du die Ports belegst, auf denen der GFP-Simulator hören muß.
Oder
Zuerst das CS2-PC Programm und dann dein Programm? Wenn ja, lief dann dann von Märklin der GFP-Simulator schon? Denn dann kannst du dein Programm nicht mehr starten, da der GFP-Simulator ja schon die Ports benutzt, auf denen dein Programm auch hören muß.
AndreasWB schrieb:
Daher hatte ich eine Pseudo-IP eingerichtet und es erfolgreich zum Laufen gebracht. Jetzt läuft es auch im rechnerinternen Loopback-Netztreiber.
Damit ist die Sache für mich erledigt.
Hallo Andreas,
konntest Du denn auch die Variante mit der 2. IP auf der netzwerkkarte testen? Mich würde ja interessieren, ob es damit dann auch möglich ist, von einem weiteren PC oder gar von einem Smartphone/Tablet auf die CS2-Software zuzugreifen.
Oder ob mir Thorsten ein CC-Schnitte für Testzwecke vorübergehend zur Verfügung stellt? Versandkosten kann ich übernehmen und später dann zurückschicken bzw. den Kaufpreis überweisen.
Da ich Tablet, Smartphone, internes Netzwerk mit Windows XP und Windows 7 64Bit zur Verfügung habe, wäre das vielleicht von Interesse?
Gruß,
Moritz
4 x MS2 V2.5, MM2, mfx und DCC
Banana Pi mit BpI Gleisbox Interface, MRsystem
1 x StartPunkt 2, 1 x SpielPunkt NET
ich schiebe die "Verwirrungen" mal auf die vielen Beiträge, die inzwischen in diesem Thread stehen.
1.: Die Startreihenfolge findet Ihr zusätzlich auch in meiner kleinen Anleitung auf meiner HP.
Und es ist doch vollkommen logisch: Natürlich zuerst mein Interface und dann das Märklin-Programm.
2.: Ich habe es doch mehrmals wiederholt. Der Rechner steht isoliert, also ohne Netz. Ich habe also keine weitere aktive IP außer der, mit der ich mit dem Märklin-Programm kommuniziere.
Ihr könnt Eure Tests gerne durchführen. Dazu benötigt Ihr aber die CC-Schnitte und eine ordnungsgemäße Windows-Installation.
Auch die Kollegen von WDP haben sich bisher an der Märklin-Demo die Zähne ausgebissen.
nachdem wir uns gestern über deinen Aufbau unterhalten haben (Danke daß du dich gemeldet hattest, am Telefon war es einfacher) und ich deine Umgebung soweit verstanden habe, ging mir heute morgen noch etwas durch den Kopf. Du hast (wie oben beschrieben) kein Netz am Rechner, also kein aktives Interface. Und benutzt die localhost Adresse. Ich hab mich gefragt, wie denn Märklin damit umgeht.
Also hab ich heute morgen schnell einen Test gemacht. Ich habe sämtliche Netzwerkinterfaces an meinem Notebook deaktiviert. Und dann hab ich die CS2-PC Software gestartet. Und was sehe ich: die cs2.exe startet zwar ohne Fehler, sagt (wie zu erwarten) daß sie keine CS2 gefunden hat. Dann startet sie die GFP-Simulation. Und die bringt genau die Fehlermeldung, die du beschrieben hast (siehe angehängten Screenshot). Bingo!!
Der Fehler tritt also auf, weil das Märklin Programm seinen Socket nicht an ein Interface und Portnummer binden kann. Und das geht nicht, weil es keine aktives Interface gibt! Nicht etwa, weil vielleicht der Port oder etwas anderes belegt ist oder weil die IP Adresse die localhost Adresse ist. Die localhost Adresse benutzt das Märklin Programm deshalb nicht, weil bei Windows im Gegensatz zu UNIX Systemen die localhost IP Adresse nicht für ein Interface konfiguriert ist. Unter UNIX Systemen hätte man genau dafür das Loopback Interface. Ich weiß nicht, inwieweit Code der CS2 wiedeverwendet werden konnte. Aber die läuft auch unter Linux.
Damit ist auch klar, daß das Benutzen des Loopback Interfaces nicht nur ein Workaround, sondern sogar eine der möglichen richtigen Lösungen ist. Denn dadurch hat man wieder ein aktives Netzwerkinterface. Alternativ kann man wahrscheinlich auch einfach dem vorhanden Netzwerkinterface eine IP Adresse statisch zuweisen und das Interface nicht deaktivieren. Bei mir hatte dadurch auch ohne Link auf dem Lan Interface das Märklin Programm sich mit diesem Interface verbunden. Und natürlich mein BeagelBone Black mit der "CS2 Emulation" nicht gefunden. Dazu mußte man die WLAN Verbindung nehmen.
Eigentlich könntest du das sogar offiziell für dein Programm dokumentieren, daß immer ein aktives Netzwerkinterface vorhanden sein muß. Oder man sonst das Loopback Interface installieren muß.
Mich befriedigt das soweit, da jetzt der Grund erkannt ist.
Jetzt muß ich mich nur noch um die Fehlermeldung "MSWINSCK.OCX not correctly registered. File invalid or not found." kümmern. Eine Neuinstallation der VB Redistributables hatte nicht geholfen. Der zuerst vermutete Zummenhang dieser Installation zum VMWare Player stimt nicht. Da war nur ein Dienst nicht gestartet.
Quote
AndreasWB schrieb:
ich schiebe die "Verwirrungen" mal auf die vielen Beiträge, die inzwischen in diesem Thread stehen.
Das hat es mit Sicherheit nicht verbessert. Das ging schon etwas durcheinander, so daß mir etwas der rote Faden fehlte.
Quote
AndreasWB schrieb:
1.: Die Startreihenfolge findet Ihr zusätzlich auch in meiner kleinen Anleitung auf meiner HP.
Und es ist doch vollkommen logisch: Natürlich zuerst mein Interface und dann das Märklin-Programm.
Die Frage von mir sollte auch kein Angriff sein oder etwas unterstellen oder sonst etwas. Das ist quasi das Standard Vorgehen, das wir auch hier in der Firma haben, wenn etwas nicht funktioniert. Da werden auch zuerst nochmals banale Einstellungen abgefragt. Es kann immer sein, daß, warum auch immer, doch so etwas falsch sein könnte. Und man versucht systematisch der Reihe nach nochmals alle Punkte durchzugehen.
Quote
AndreasWB schrieb:
2.: Ich habe es doch mehrmals wiederholt. Der Rechner steht isoliert, also ohne Netz. Ich habe also keine weitere aktive IP außer der, mit der ich mit dem Märklin-Programm kommuniziere.
Da hätte man eigentlich stutzig werden können. Kein aktives Interface, und wie geht das mit localhost? Aber da ich mehr mit Linux zu tun habe, hatte ich nicht daran gedacht, daß unter Windows localhost keinem Loopback Interface zugeordnet ist.
ST-Oldie schrieb:
Jetzt muß ich mich nur noch um die Fehlermeldung "MSWINSCK.OCX not correctly registered. File invalid or not found." kümmern. Eine Neuinstallation der VB Redistributables hatte nicht geholfen. Der zuerst vermutete Zummenhang dieser Installation zum VMWare Player stimt nicht. Da war nur ein Dienst nicht gestartet.
Bei mir fehlte die MSCOMM32.OCX, die habe ich dann aus einer älteren Installation einfach in das Verzeichnis der CS2-Server 0.9.exe kopiert und dann hat die CS2-Server 0.9.exe funktioniert.
Vielleicht kannst Du das mit der MSWINSCK.OCX genauso machen.
Gruß,
Moritz
4 x MS2 V2.5, MM2, mfx und DCC
Banana Pi mit BpI Gleisbox Interface, MRsystem
1 x StartPunkt 2, 1 x SpielPunkt NET