![]() |
TCP-Client und -server in einer Applikation?
Hallo zusammen,
Ich möchte ein einfaches Chat-Programm erstellen, dass, hier im lokalen Netz, Nachrichten unter, vorerst, zwei Rechnern austauschen kann. Kann ich einfach ein Programm, das beides, also den Server und den Client enthält, basteln, oder gibt's dafür sinnigere Lösungsansätze? Also das Programm soll tun: Verbinde dich mit dem Client auf IP 192.168.... Wenn du ihn gefunden hast, zeig das an. Drücke ich auf (senden) schick ihm, also dem Client, eine Nachricht. Und jetzt warte, bis der andere PC, mit dem du verbunden bist, dir eine Nachricht zurückschickt (deshalb kam ich auf Server). Kann mich da mal bitte jemand auf die richtige Spur setzen? Herzlich grüßt Wandogau |
AW: TCP-Client und -server in einer Applikation?
Ein sehr simples Beispiel findest du hier in der Doku:
![]() Andere Komponenten sind besser, aber den Zweck erfüllt es. |
AW: TCP-Client und -server in einer Applikation?
Moin,
ich habe so etwas mal mit den Indys ( ![]() (TidTCPClient, TidTCPServer), allerdings weiss ich nicht, ob die unter Delphi 5 nutzbar sind. Gruss Christian |
AW: TCP-Client und -server in einer Applikation?
Hallo zusammen,
Jep! Die Indys functionieren sogar unter D5 noch, sogar als aktuelle Version. Mir war nur nicht klar, ob man eine Server- und eine Client-Komponente im selben Programm haben kann, ohne, dass die sich in die Haare kriegen. Also erstmal: lieben Dank! Herzlich grüßt Wandogau |
AW: TCP-Client und -server in einer Applikation?
Es gibt prinzipiell keinen Grund, nicht in demselben Programm eine (Indy-)Client- und eine Server-Komponente zu verwenden. Allerdings brauchst Du das für diesen Anwendungsfall nicht, denn wenn die Verbindung einmal hergestellt ist, kann man darüber Daten in beide Richtungen schicken.
Falls mal mehr als zwei Programme miteinander kommunizieren sollen, bietet es sich aber eher an, dass ein Server die Verbindung zwischen allen herstellt. Wobei: Man kann das natürlich auch auf andere Weise lösen, z.B. dass man die Nachrichten über einen File-Share austauscht. Das ist deutlich simpler. Oder man macht es wie DeltaChat und verwendet E-Mail als Transportprotokoll. Es kommt halt immer auf die konkreten Anforderungen an:
|
AW: TCP-Client und -server in einer Applikation?
Liste der Anhänge anzeigen (Anzahl: 1)
An den Austausch über eine Datei hatte ich auch schon gedacht, aber andererseits, dachte ich ;-), müsste es ja über TCP auch gehen.
Wie, um Himmelswillen, kann ich denn zwei Clients, ohne Server, miteinander verbinden, so, dass die dann auch auf Nachrichten vom anderen Client warten? Das Programm ist, am Ende, nur dafür da, dass ich an unseren Senderechner (für unseren kleinen Radiosender), eine Nachricht schicken kann, und der Moderator kann antworten, sprich auch wieder eine Nachricht an denjenigen, der die ursprüngliche Nachricht gesendet hat, schicken. Soll nur! im Lokalen Netz laufen. Ich häng' meinen Entwurf mal dran, im Moment ist der, natürlich, weder schön noch sinnvoll, aber wenn ich das Programm auf zwei Rechnern laufen lasse, finden die sich auch, aber: vom einen Rechner werden die Nachrichten auf dem anderen Empfangen, aber andersherum nicht. Wenn ich das Programm schliesse, kriege ich einen Socket-Fehler 1053. Vielleicht könnte da mal jemand von euch draufschauen? Ich häng' das Ganze hier mal an! Schonmal lieben Dank und herzliche Grüße Wandogau |
AW: TCP-Client und -server in einer Applikation?
Zitat:
Die IdTelnet-Komponente ist ein Beispiel, hier wird zum Empfangen ein Thread verwendet um laufend auf Nachrichten vom Server zu warten, während das Senden nur vom Hauptthread aus geschieht. ![]() |
AW: TCP-Client und -server in einer Applikation?
Hallo zusammen,
Okay, ich hab jetzt echt alles versucht, aber ich verstehe immernoch nicht, wie ich die beiden Clients, ohne Server, verbinden soll. Trage ich bei beiden die IP und den Port des jeweils anderen PC's ein und führe connect aus, kriege ich keine Verbindung, was mich irgendwie nicht wirklich wundert. ;-) Aber wie dann? Kann mir bitte mal jemand auf die Sprünge helfen? Vielleicht könnte sich doch mal jemand mein Beispiel ansehen, mit Client und Server ist ja auch völlig in Ordnung, aber, wie oben geschrieben, hängt sich das Prog spätestens beim Close komplett auf, und wenn ich es auf zwei Rechnern gestartet habe, geht der Nachrichtenaustausch zwar in die eine, aber nicht in die andere Richtung. Herzlich grüßt und bedankt sich schonmal für eure Hilfe Wandogau |
AW: TCP-Client und -server in einer Applikation?
Hmmm, ich meine mich zu entsinnen, daß die Indys recht kompliziert zu handhaben sind. Dynamische Erzeugung der Komponenten, wie in Deinem Versuch, gehört auch dazu. Also probier es doch lieber erstmal einfacher aus und leg die Komponenten in einem neuen Projekt auf die Form1 und schau was Du damit tun kannst. Alternativ kann ich die ICS von Overbyte wärmstens empfehlen, die ebenfalls kostenfrei zu erhalten sind.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz