Announcement

Collapse
No announcement yet.

Daten senden vom Server zum Client

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

  • Daten senden vom Server zum Client

    Hi *,

    auf einem Netzwerk-Server soll ein (eigenentwickelter) Dienst laufen, der Statusmeldungen an Anwendungen auf Clients schicken soll.
    Für die Kommunikation ist es wohl am besten, TCP-Sockets einzusetzen.
    Wenn ich jetzt den Dienst zum Socket-Server mache und die Anwendungen zu Socket-Clients, weiß ich nicht, wie ich die Statusmeldungen zu den Clients bekomme.
    Nach vielem Lesen hier und in der Online-Hilfe sieht es so aus, als ob nur der Socket-Client Daten senden kann, nicht aber der Server.
    In A. Kosch's Buch "Win32 Lösungen" steht zwar "In einer aktiven Verbindung unterscheiden sich Server und Client nicht mehr - beide 'Steckdosen' haben die gleichen Eigenschaften und Fähigkeiten."
    Aber entweder stimmt das so nicht ganz oder ich kapiers bloß (mal wieder) nicht.

    Kann mir jemand helfen?
    Danke im voraus.

    P.S. Habe D7 Prof. und wollte Indy einsetzen. Die hier oft erwähnten TServerSockets und TClientSockets gibt es unter D7 wohl nicht mehr.

    Grüße,
    Reimund

  • #2
    Hi,
    wenn du "ServerSocket" und "ClientSocket" von der Registerkarte "Internet" (zumindest bei D6 heißt's so) verwendest, kannst du Daten in beide Richtungen schicken. Dazu folgende Methoden verwenden:
    Client.Socket.SendBuf(output,300);
    bzw.
    Server.Socket.Connections[0].SendBuf(output,300);
    In dem Fall ist output ein Record, der 300 Byte groß ist.
    Beim Server muss man angeben, an welchen Clienten (also über welche Connection) die Daten gesendet werden sollen: Index beginnend bei 0.
    Wenn's nur Text sein soll, geht's einfacher mit SendText(string) statt SendBuf.
    Beim Empfänger wird dann das Ereignis OnClientRead ausgelöst, worauf man mit
    Socket.ReceiveBuf(input,300);
    bzw.
    string:=Socket.ReceiveText;
    reagieren sollte.
    Socket.ReceiveLength gibt die Datenmenge an, die (noch) zu empfangen ist, hilfreich für ReceiveBuf.

    Ich hoffe, das hilft.
    Fabia

    Comment


    • #3
      Hallo Fabian,

      vielen Dank für Deine Hilfe. Habe aber Delphi 7 Prof., da gibt es diese Komponenten wohl nicht mehr. Zumindest finde ich sie nicht.

      Grüße,
      Reimun

      Comment


      • #4
        Hm, es gibt noch die Indy-Komponenten, aber mit denen kenne ich mich nicht aus

        Comment


        • #5
          Zu den Indykomponenten gibt es Demos. Diese sind mit Delphi7 leider nicht integriert, sondern man muss sie runterladen. In irgendeiner Textdatei steht auch die Adresse, es ist http://www.nevrona.com/indy
          Donner, jetzt haben sie endlich eine eigene Domain: http://www.indyproject.org
          Klick Dich ein wenig durch, so kommst Du zu den Demos: http://www.indyproject.org/Demos/index.iw

          Comment


          • #6
            Das Demo heisst BasicClientServer

            Comment

            Working...
            X