Announcement

Collapse
No announcement yet.

Wie kann man am besten mit anderen Rechnern kommunizieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann man am besten mit anderen Rechnern kommunizieren?

    Hallo, <br>
    ich muss Daten von ungefähr 14 Rechnern an ein Programm übermitteln, einige Berechnungen durchführen und dann an die anderen Rechner Ergebnisse zurücksenden.<br>
    Was ist dafür am besten geeignet?<br>
    <br>
    PS: Ich habe nur D4 Standard<br>
    <br>
    mfg Alex

  • #2
    Hallo,

    das hängt davon ab, in welchem Umfeld (LAN, WAN, Internet) diese Rechner stehen und welches Betriebssystem dort läuft. Wenn bei den Clients mindestens Windows 95 läuft und der Server unter Windows NT4/Windows 2000 arbeitet, ist <b>DCOM</b> (Distributed Component Object Model) die einfachste und leistungsfähigste Implementierungs-Alternative. Hier kann jeder jeden direkt aufrufen (Remote Procedure Calls), wobei das Betriebssystem alle Basisdienste sofort einsatzfertig zur Verfügung stellt.

    Werden keine umfangreichen Daten übertragen bzw. handelt es sich nur um einfache Datentypen und soll das Ganze auch im Internet funktionieren, kann ein eigenes TCP/IP-Aufsatzprotokoll ggf. besser geeignet sein

    Comment


    • #3
      Hallo Herr Kosch,<br>
      alle Rechner haben Windows NT 4.0 installiert und sind als LAN verbunden. Es sollen eigentlich nur einige Zahlen und Strings übertragen werden, keine Dateien oder so. <br>
      Gibt es hier im Forum vielleicht schon Beispiele dafür? Und wenn ja, unter welchem Stichwort sollte ich am besten Suchen?<br><br>Danke für ihre Hilfe. Ale

      Comment


      • #4
        Hallo,<br>
        ich habe mir ihr Buch besorgt und angefangen es durchzuarbeiten. Ich versuche mit DCOM zu kommunizieren, doch das Thema ist sehr umfangreich. Vielleicht können Sie mir einige Tipps geben, wo man am besten anfängt.<br> Ich habe mir das wie folgt vorgestellt: Nach dem die Clientanwendung gestartet wurde, soll sie im Netzwerk nach einer Serveranwendung suchen, ggf. muss man bei mehr als einer eine auswählen, anderenfalls soll die Verbindung automatisch hergestellt werden. Außerdem soll der "Server" auch "Clients" abweisen können und keine Verbindung mehr annehmen, wenn schon eine bestimmte Anzahl von Rechnern verbunden ist. Von jedem Rechner soll man den Client oder Server starten können und wenn der Client einmal mit dem Server verbunden war, soll er immer zum gleichen senden, wenn es mehrere Server gibt.<br> Ihre zweite Idee, das TCP-Aufsatzprotokoll, hört sich auch nicht schlecht an, was ist denn für meinen Fall besser? Und wie kann man das realisieren

        Comment


        • #5
          Hallo,

          fast alle geschilderten Anforderungen werden von DCOM automatisch erfüllt, nur die Auswahl eines von mehreren DCOM-Servern muss man selbst implementieren.

          Die Begrenzung auf eine bestimmte Client-Anzahl kann man auf verschiedenen Wegen implementieren: <br>
          a) eigene Class Factory prüft den Zählerstand, bevor eine Objektinstanz erzeugt wird <br>
          b) eigene Login-Interfacemethode (siehe folgendes Beispiel aus meinem Buch)
          <pre>
          procedure TSTASyncObj.LogonUser(const UserName: WideString; UserId: Integer);
          begin
          FUserName := UserName;
          FUserId := UserId;
          aCS.Enter;
          try
          Inc(iUserCount);
          if iUserCount > 3 then
          raise EOleSysError.Create('Zu viele User!', S_FALSE, 0);
          finally
          aCS.Leave;
          end;
          end;
          </pre>
          Das TCP/IP-Aufsatzprotokoll läuft daraus hinaus, dass man sich ein eigenes Kommunikationsschema über TServerSocket/TClientSocket zusammenbaut. Der Aufwand ist jedoch höher als bei DCOM

          Comment


          • #6
            Hallo und Danke - Jetzt muss ich erst einmal gründlich testen

            Comment


            • #7
              Hallo,<br>
              ich schaffe es einfach nicht.
              Trotz ihres Buches ist das Thema sehr komplex und unübersichlich für mich (da brauche ich wohl noch viel Übung). Ich weiss einfach nicht, auf welche Aktionen ich Reagieren soll und was überhaupt am günstigsten ist.
              <br>
              Haben sie vielleicht ein DCOM-Beispiel (oder wissen wo ich eins finde), mit dem man eine Serveranwendung startet, auf Clients wartet und wenn sich welche angemeldet haben auf einen Button klickt und damit die eigentliche Clientanwendung startet? Nun sollen von jeder Clientanwendung z.B. zwei Zahlen (als Record-->Stream?) gesendet werden und wenn alle zwei Zahlen gesendet haben, sollen alle Zahlen addiert und das Ergebnis zurückgeschickt werden.<br>
              <br>
              Mit freundlichen Grüssen<br>
              Alex

              Comment


              • #8
                Hallo!<br>
                <br>
                Sowas ähnlich hab' ich schonmal irgendwann gemacht!<br>
                Ich habe dafür dir Komponenten: 'TNMMSGServ', 'TNMMsg' und 'TNMFinger' der Palette 'FastNet' verwendet. Da das alles aus D5 ist und ich nicht genau weiß ob das auch in D4 verfügbar ist (ich habe nur D3 & D5) wusst Du es einfach mal mit 'TServerSocket' und 'TClientSocket' aus 'Internet' probieren.<br>
                <br>
                Falls Du noch Fragen hast und sonstwas, dan poste einfach zurück und/oder schick mir 'ne Email: <a href="mailto:[email protected]">nstoeckigt. [email protected]</a>!<br>
                <br>
                Gruß<br>
                &nbsp;&nbsp;&nbsp;Nico Stöckig

                Comment


                • #9
                  <pre>
                  Hallo,
                  ich habe sowas auch schon mal mit Sockets realisiert, doch dies wurde
                  relativ aufwendig, deshalb wollte ich DCOM nutzen. Nur ist mir das
                  Prinzip nicht ganz klar und deshalb hoffe ich, dass mir Herr Kosch
                  noch mal helfen kann und habe Nr. #6 gepostet.
                  <br>
                  Trotzdem vielen Dank
                  <br>
                  PS: Was ist eigentlich genau der Unterschied zwischen 'TNMMSGServ'...-Komponenten und Sockets?
                  </pre&gt

                  Comment

                  Working...
                  X