![]() |
Verbindung zwischen 2 Rechnern
Es geht wiedermal um eine Verbindung zwischen 2 Rechnern! Ich bin gerade dabei mein Chatprogramm zu überarbeiten :-D
Da ich nun grundlegendes an der Kommunikation ändern will und mir nicht ganz sicher bin wie ich's am besten mache, frage ich mal lieber Fachleute! Nochmal kurz zu meinem Programm: Die EXE, die auf beiden Rechnern im Hintergrund läuft, ist die gleiche, es ist KEINER Server und KEINER Client. Beide sind mit TIdTCPClient und TIdTCPServer ausgestattet. Beim chatten wird dann über den TCPClient eine Verbindung zum TCPServer auf dem anderen Computer aufgebaut. Die Nachricht wird übertragen und die Verbindung wird wieder geschlossen! Hauptfrage: Gibt es eine andere Lösung für die Kommunikation? Ich finde mit der TCPClient- und der TCPServer-Compo ist das irgendwie nicht ganz die beste Lösung, denn ein Server reagiert auf Anfragen vom Client.Bei mir stellt nicht einer eine Anfrage und der andere soll antworten, sondern von beiden Rechnern kommen die gleichen Nachrichten, sie sollen immer nur hinzugefügt werden, versteht ihr was ich meine?
Code:
Normalerweise: Im Chat mit 2 Rechnern:
Anfrage/Antwort Nachricht bekommen hinzufügen \___Server____/ ^^ Rechner 1 << >> Rechner 2 Client |
Re: Verbindung zwischen 2 Rechnern
Meinst du das ein Rechner ein und dieselbe Antwort doppelt bekommt? Wenn ja, eine Lösung wäre, eine Message ID mit jeder Nachricht zu übergeben damit die Nachricht einmalig wird.
|
Re: Verbindung zwischen 2 Rechnern
Oder die gesamte Logik nochmal zu überdenken.
Im Internet wenn man chattet sendet man ja auch nicht direkt an die anderen Leute ide Nachricht. Dort übernimmt das ein Server, welche die Nachrichten "weiterleitet". - Server - Client A - Client B Sendevorgang: Client A -> Server -> Client B (an alle Clients weiterleiten) |
Re: Verbindung zwischen 2 Rechnern
hrm. Ich würde das alternativ über UDP Broadcasting lösen.
Einer ruft seine Nachricht via UDP ins Netzwerk (Broadcast, halt auf einem bestimmten Port), alle anderen Programme lauschen auf dem entsprechenen Port und wenn Sie dort eine Nachricht empfangen zeigen sie diese einfach an. Dann hat man keinen ärger mit irgendwelchen TCP - Sessions. Die sind bei sowas nämlich eigentlich recht nervig. Hat auch den Vorteil, das Du im lokalen Netz auch so auskommst wenn das Programm die IP der Gegenstelle nicht kennt, was bei TCP ja sonst der Fall wäre. |
Re: Verbindung zwischen 2 Rechnern
@Flax: Aber genau das meine ich nicht! Bei 2 Rechnern wäre es doch schwachsinn, einen davon zum Server zu verkloppen! Die können ja direkt miteinander chatten, denn die Message geht ja an keinen dritten.
Aber wie? Bei nem normalen Verkehr zwischen Server und Client sendet der Client bsw. eine (nennen wir es mal) ClientNachricht und der Server die ServerNachricht. Im 2-er-Chat muss (!soll!) das nicht sein, da senden beide die sogenannte "ChatNachricht" :wink: Und keiner antwortet oder fragt, sondern sendet einfach. Ist das jetzt besser? |
Re: Verbindung zwischen 2 Rechnern
@Phoenix: Das hört sich ganz gut an, kannst du das etwas genauer erklären oder kennst du Tuts für UDP, hab ich nämlich noch nicht gemacht!
|
Re: Verbindung zwischen 2 Rechnern
Ja UDP ist die Lösung.
Keiner ist nur Server oder nur Client. Jeder ist Server und Client in einem. |
Re: Verbindung zwischen 2 Rechnern
ich habe auch kurzzeitig angefangen, ein Chat-Prog zu bauen.
Ich habs über die TCP/IP-Sockets gemacht. Ist teilweise recht kompliziert, aber es funktioniert eigentlich recht gut. Bei Interesse kann ich ja mal die Grundlegenden Sachen <hier> reinstellen. Evtl. ist es vorteilhaft, mir ne PM zu schicken, da ich ja nicht immer überall reingucke, obs was neues gibt |
Re: Verbindung zwischen 2 Rechnern
Ich wäre an diesem Chatprogramm interessiert.
|
Re: Verbindung zwischen 2 Rechnern
An welchem? Meins oder F.W.s?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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