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?
Hallo Andreas, hallo Thorsten,
ich habe es eben nochmal mit der 2. IP-Adresse probiert, witziger Weise erkennt die CS2-Software jetzt den CS2-Server! Der meldet natürlich dann irgendwann, "Operation valid only when the port is open", weil ich ja keine CC-Schnitte am USB-CAN-Port habe, aber das sieht doch schon gut aus, oder?
Ein Ping auf die beiden IP-Adressen
192.168.178.40 und
192.168.178.102
funktioniert auch!
Jetzt installier ich mal die CS2-Software auf dem 2. PC.
4 x MS2 V2.5, MM2, mfx und DCC
Banana Pi mit BpI Gleisbox Interface, MRsystem
1 x StartPunkt 2, 1 x SpielPunkt NET
dann drücke ich mal die Daumen.
Spannend wird es ja, wenn das CS2-Programm die Verbindung mit dem Gleisformat-Prozessor (GFP) aufbaut.
@Thorsten:
Beim DCC-Programmieren komme ich bei der CS2 nur bis zum CV6. Ein weiteres Scrollen funktioniert nicht.
Ist das bei Dir auch so?
Wie funktioniert es bei der Hardware-CS2 ?
Somit bleibt dann mein Dekoderprogrammer - Programm doch die 1. Wahl.
Also wenn ich von einem zweiten Rechner die CS2-Software starte, hängt sich die CS2-Serversoftware auf bzw. meldet einen Fehler. Ich denke, ohne CC-Schnitte komme ich da im Moment nicht weiter.
4 x MS2 V2.5, MM2, mfx und DCC
Banana Pi mit BpI Gleisbox Interface, MRsystem
1 x StartPunkt 2, 1 x SpielPunkt NET
Thorsten schrieb:Du must da glaube ich den CV-Wert angeben, der gelesen werden soll. Ich habe mir nur mfx angeschaut, das war mir wichtiger, DCC nutze ich kaum.
Ja, bei DCC-Decodern muss man den CV-Wert erst anlegen, den man abfragen und ggf. neu schreiben möchte. Man kann sich dann aber glaube ich Standardprofile für verschiedene Decoder anlegen, damit man nicht immer wieder neu die CVs anlegen muss.
4 x MS2 V2.5, MM2, mfx und DCC
Banana Pi mit BpI Gleisbox Interface, MRsystem
1 x StartPunkt 2, 1 x SpielPunkt NET
Dein Problem kann ich Dir erklären. Die Netzwerkkomunikation funktioniert nach einem Schichtenmodell
Schicht 1 beschreibt die Signalisierung auf Hardwareebene wie z.B. Spannung, Strom, Kabel,...
Schicht 2 beschreibt die Kommunikation auf Hardwareebene. In einem Netzabschnitt wird mit den Hardware-Adressen, auch MAC-Adressen genannt adressiert. Es sind aber nur MAC-Adressen desselben Netzabschnitts erreichbar! Loopbackadressen gehören nicht zu dem Netzwerkabschnitt an der Netzwerkkarte.
Schicht 3 beschreibt die Kommunikation zwischen Endgeräten. Am weitesten verbreitet dafür ist IP in der Version 4. Endgeräte haben normal nur Verbindung zu einem Netzabschnitt und damit auch nur eine IP-Adresse nach außen. Router verbinden dagegen mehrere Netzwerkabschnitte und haben in jedem Netzwerkabschnitt eine dazu passende IP-Adresse. Jedem Netzabschnitt, der von wo anderes her erreicht werden soll, muss vom Grundsatz her erst einmal ein eindeutiges IP-Netz zugeordnet werden. Also Deinem Netzwerkabschnitt zwischen den Rechner und dem Router hast Du das IP-Netz 192.168.178.0 Maske 255.255.255.0 zugeteilt. Das bedeutet so viel, dass die ersten 3 Zahlen den Netzwerkabschnitt adressieren, und die 4. Zahl der Adresse dann das Endgerät innerhalb des Netzwerkabschnitts. Diese Teilung bestimmt die Maske. Deshalb können Dein Router (192.168.178.1) und Dein Rechner (192.168.178.40) miteinander kommunizieren.
Wie oben aber schon beschrieben erfolgt die Adressierung innerhalb des Netzwerkabschnitts mit den MAC-Adressen. Um das zu lösen, gibt es das Adress Ressolution Protocol kurz ARP, das eine dynamische Übersetzungstabelle zwischen IP-Adresse und MAC-Adresse erzeugt. Unter Windows kannst Du Dir diese Tabelle mit "Ausführen" "CMD" und in dem dann sich öffnenden Fenster mit "arp -a" anzeigen lassen.
Hier kommen wir zu Deinem ersten Problem. Du hast mit 192.168.178.102 für die Loopback-Adresse eine Adresse aus dem externen Netzwerkabschnitt verwendet. Der Loopback-Adapter gehört aber nicht zu dem Netzwerkabschnitt. Also kann das ARP keine Übersetzung von IP zu MAC-Adresse liefern.
Es gibt jetzt 2 Möglichkeiten dieses Problem zu lösen:
1. Die etwas unsaubere Methode, in dem man auf dem Rechner, der nicht mit der CC-Schnitte verbunden ist, einen statischen ARP-Eintrag in die Tabelle macht. Dabei muss die 192.168.178.102 der MAC-Adresse zugeordnet werden, die Du mit arp -a für die 192.168.178.40 angezeigt bekommst. Damit schickt dann der PC ohne CC-Schnitte die Daten an die Hardware-Adresse des PC mit der CC-Schnitte und der kennt dann auch die IP-Adresse und verarbeitet es entsprechend.
2. Die saubere Methode nach dem IP wäre der Loopback z.B. die Adresse 192.168.179.102 zu geben. Sie ist damit nicht mehr Bestandteil des IP-Netzes des Netzwerkabschnitts. Es wäre also für alle Ebenen einheitlich. Nun passiert das, wofür IP erfunden wurde. Der Rechner ohne die CC-Schnitte stellt fest, dass die Adresse nicht zu dem Netzwerkabschnitt gehört, an dem er angeschlossen ist. Er geht jetzt in seine Routing-Tabelle und sucht dort nach einem Eintrag, über welche IP-Adresse aus seinem lokalen Netzwerkabschnitt er zu dieser IP-Adresse kommt, also ein Gateway. Findet er keinen speziellen Eintrag dafür schickt er das Datenpaket an das sogenannte Default-Gateway, was in Deinem Fall die Adresse der Fritzbox ist. Zum Weiterleiten im lokalen Netzwerkabschnitt wird also die MAC-Adresse zur 192.168.178.1 (IP des Default-Gateways) verwendet. Macht man einen Eintrag in der Fritzbox, dass die 192.168.179.102 über die 192.168.178.40 zu erreichen ist, hat man das an einer Stelle für alle Rechner im lokalen Netz gelöst, da dann die Fritzbox zum richtigen Rechner weiter leitet. Andernfalls muss man in der lokalen Routing-Tabelle jedes Rechners, der die Loopback-Adresse ereichen soll, einen statischen Eintrag machen.
Damit sollte das Erreichbarkeitsthema der IP-Adresse gelöst sein.
Jetzt noch zu dem anderen Thema. Das Schichtenmodell hört nicht bei Schicht 3 auf. In Schicht 4 wird dann die einzelne Anwendung auf dem Rechner adressiert. Also mit TCP Port 80 z.B. der WEB-Service, mit UDP Port 15730 der CAN-Telegramm-Weiterleiter. Der Unterschied zwischen UDP und TCP besteht darin, dass TCP den Datentransport absichert. Es werden also Quittungen zurück gesendet, wenn etwas empfangen wurde, und es kann erkannt werden, wenn ein Datenpaket aus dem Datenstrom fehlt, womit es dann auch noch einmal gesendet wird. Das kann aber auch hinderlich sein, da nicht endlos weiter Daten gesendet werden dürfen, wenn die positive Quittung für vorher gesendete Daten noch nicht da ist. Deshalb werden die CAN-Telegramme mit UDP versendet, da die CAN-Telegramme die Absicherung selbst enthalten und somit in Schicht 4 keine Absicherung notwendig ist.
Das was Andreas da beschreibt, dass sein Programm eine IP-Adresse exklusiv haben möchte, könnte daran liegen, dass es sich um die Portnummern erst einmal nicht kümmert und alles abgreift. Ich weiß, das ist nicht ganz einfach zu programmieren, und ich kann es auch nicht besser, aber die Vermutung liegt nahe. Sonst dürfte die Internet-Kommunikation nicht abbrechen, wenn man das Programm auf die IP-Adresse der Netzwerkkarte bindet. Denn andere Anwendungen benutzen ja andere Ports und sollten damit problemlos weiter funktionieren. Wenn die Anwendungen richtig programmiert sind, bekommt man mit "Ausführen" "CMD" und dann "netstat -a" eine stimmige Liste der verwendeten Ports. Ich bin mir auch nicht sicher, ob eine 2. IP-Adresse auf der Netzwerkkarte das Problem lösen hilft, da es auch sein kann, dass das Programm allen Datenverkehr des Adapters, unabhängig von der IP-Adresse abgreift.
mobajo schrieb:Das was Andreas da beschreibt, dass sein Programm eine IP-Adresse exklusiv haben möchte, könnte daran liegen, dass es sich um die Portnummern erst einmal nicht kümmert und alles abgreift. Ich weiß, das ist nicht ganz einfach zu programmieren, und ich kann es auch nicht besser, aber die Vermutung liegt nahe.
das hast Du leider falsch gesehen.
Es ist nicht mein Programm, sonder die PC-CS2 von Märklin fordert die Exklusivität.
Das nur zur Richtigstellung.
Aber solche Verwechslung kann im Verlauf der vielen Beiträge schon mal vorkommen.
ich hab mal über diesen Thread geschaut und muß sagen, daß ich nicht komplett verstehe, was das Problem ist. Es könnte (bitte nicht böse sein) auch daran liegen, daß das Problem wegen wenig Netzwerkkentnisse nicht so gut erklärt ist.
Quote
AndreasWB schrieb:
Es ist nicht mein Programm, sondern die PC-CS2 von Märklin fordert die Exklusivität.
Das Märklin PC-CS2 fordert keine Exklusivität für eine IP Adresse, was so auch nicht machbar ist. Das Märklin Programm öffnet ganz normal einen Socket und bindet den an die eigene IP Adresse und den von Märklin dokumentierten Port. Das ist UDP 15730. Zusätzlich wird noch ein Socket für TCP 15732 geöffnet. Aber die TCP Ports sind nicht dokumentiert.
Im Demomodus startet der GFP-Simulator und öffnet ein Socket für UDP 15731, das ist auch in der Märklin CAN Doku als Portnummer für das CS2 Ethernet Gateway dokumentiert. Zusätzlich wird ein Socket für TCP 15731 geöffnet. Wie oben ist der TCP Port nicht dukumentiert. Der GFP-Simulator emuliert ja die fehlende CS2 und verhält sich auf dem Netzwerk auch genauso.
Das ganze läßt sich z.B. mit TCPView aus den sysinternals gut erkennen.
Also sollte dein Programm ohne Probleme und ohne Manipulation wie z.B. zweites virtuelles Interface / zweite Netzwerkadresse lokal laufen können. Dein Programm ersetzt quasi den GFP-Simulator (und sollte also vor dem Märklin CS2-PC Programm gestartet werden) und muß sockets für UDP und TCP auf Port 15731 öffnen.
Leider hab ich bei meinem Versuch auch die Fehlermeldung bzgl. MSWINSCK.OCX erhalten. Nach dem Reparaturversuch lief der VMWare Player nicht. Also hab ich den VMWare Player neu installiert. Und das Problem nicht weiter verfolgt, da ich keine CC-Schnitte habe sondern einen Minicomputer mit ARM CPU als CAN-ETH Bridge einsetze. Aber du weißt ja, wie du mich privat erreichen kannst. Wenn du Interesse hast, können wir das ja mal privat durchkauen.
ST-Oldie schrieb:Das Märklin Programm öffnet ganz normal einen Socket und bindet den an die eigene IP Adresse und den von Märklin dokumentierten Port. ...
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".
Und dann rien ne va plus.