Hallo, ich habe ein Netzwerk aufgebaut (2 x DOS Rechner als Server, 1 x Windows2000 Rechner als Client).
Bisher habe ich folgendes realisiert: - Vom Client kann ich durch Auswahl eines Servers eine Nachricht versenden und eine Rückantwort empfangen.
Folgendes möchte ich realisieren: - Ich möchte zusätzlich die Möglichkeit haben vom Client eine Nachricht an beide Server gleichzeitig versenden, und von beiden eine Rückantwort erwarten.
Kann mir da jemand weiterhelfen, oder kennt jemand eine Seite (evt. mit Codebeispielen) wo dieses Verfahren beschrieben ist? Danke
Ich kann eine Nachricht an beide Server schicken, allerdings nur hintereinander. Ich möchte aber das die Nachricht gleichzeitig an beide Server verschickt wird.
Das ganze wurde in C++ realisiert, Server -> socket.h / Client -> winsock.h Ich denke das war schon die richtige Rubrik in C/C++.
Die Frage ist hier in der Win-API schon richtig. Mit ANSI C/C++ ist das nämlich nicht lösbar. Was die parllität angeht, müsstest du schon Threads einführen um "gleichzeitig" zu senden
Was du wahrscheinlich willst, ist die selbe Nachricht mit einem write-Befehl (oder was auch immer du nutzt um deine Daten über das Netz zu senden) beide Server zu erreichen. Das ist nicht möglich. TCP ist verbindungsorientiert, das heißt es existiert nur eine Verbindung zu einem Server über einen Socket. Du wirst schon nacheinander über zwei Sockets senden müssen. -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
Das stimmt schon, dass TCP verbindungsorientiert ist. Gibt es nicht auch eine andere möglichkeit so etwas zu realisieren? Es muss nicht unbedingt über TCP laufen, es kann auch UDP oder etwas anderes sein (was ich nicht kenne). Ich übertrage eben zuerst über TCP einige Daten an die Server, und möchte dann die Möglichkeit haben zu irgendeiner Zeit vom Client ein Signal an meine Server zu schicken, damit alle gleichzeitig mit etwas starten können.
das wirst du nicht hinbekommen das die Nachrichten absolut gleichzeitig gesendet werden, schon allein aus dem Grund das dein Prozessor nur einen Schritt gleichzeitig ausführen kann.Dieser Post wurde am 11.05.2004 um 11:13 Uhr von Guybrush Threepwood editiert.
~MK posteteund möchte dann die Möglichkeit haben zu irgendeiner Zeit vom Client ein Signal an meine Server zu schicken, damit alle gleichzeitig mit etwas starten können.
Es geht also gar nicht um Socketprogrammierung, sondern um die zeitliche Synchronisierung der Server, richtig? Wie genau muss die Synchronisierung denn sein?
Ich habe das HOWTO nicht selbst gelesen, deshalb kann ich nichts zur Qualität aussagen. Allerdings ist TCP Multicast in etwa das, was zu Deinem Problem passt. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)
ao postete Es geht also gar nicht um Socketprogrammierung, sondern um die zeitliche Synchronisierung der Server, richtig? Wie genau muss die Synchronisierung denn sein?
ao
Es sollte so genau wie möglich sein. Am besten im Millisekunden-Bereich. Aber das wird warscheinlich nicht möglich sein.