2011-01-17 14 views
1

Angenommen, wenn ich eine Windows-Chat-Anwendung entwickeln möchten, dann muss ein Chat-Server entwickelt und Client auch sein. Nach dem Entwickeln von Chat-Server-Apps können wir diese Apps in einem Computer ausführen und der Chat-Client wird einen anderen PC ausführen. Wenn dieser PC nicht im selben Netzwerk ist, nehmen Sie an, dass der Chat-Server in einer USA-Maschine läuft und ein Chat-Client in Deutschland läuft und ein anderer in der UK-Maschine läuft. In dieser Situation wird Kommunikation über das Internet stattfinden. Alle Rechner haben Zugang zum Internet, also wie sich ein Chat-Client beim Chat-Server anmeldet und wie zwei Chat-Clients miteinander kommunizieren. Ich möchte nur, wie Daten von einem Client zu einem anderen Client über Chat-Server übertragen werden. Bitte geben Sie mir Konzept oder es wäre besser, wenn jemand mir einen Hinweis auf eine gute .net basierte Chat-Anwendung geben würde, wo Chat-Server und Chat-Client wird da sein ......... danke.Brauchen Sie Konzept in Bezug auf Windows-basierte Chat-Anwendung

+0

Hier ist nicht wirklich eine bestimmte Frage ... Verstehen Sie, was Client/Server-Architektur ist? Möchten Sie wissen, wie Sie im Allgemeinen über das Internet kommunizieren? –

+0

ja ich möchte wissen, wie zwei win apps miteinander über das internet kommunizieren .... bitte erläutern sie ausführlich.Danke – Thomas

+0

es könnte schwer sein, eine Antwort mit einer so schlecht zu erhalten Bewertung – Spooks

Antwort

2
  1. WCF-Webdienst mit der Client-Abfrage des Dienst (Simple-Basisszenario - einfach, nicht sehr effizient zu implementieren)

  2. WCF Duplex Web Service mit dem Server zu aktualisieren Clients bei Bedarf (ein bisschen mehr kompliziert)

  3. TCP Socket-basierte Lösung, am schwierigsten zu implementieren, erlaubt aber eine viel bessere Kontrolle. Es gibt ein sehr gutes Beispiel in Matthew McDonalds Buch "Pro Silverlight 3"

+0

Ich möchte nur Steckdose in Win-Apps, die miteinander über das Internet kommunizieren, weil zwei Apps wie ein Chat-Server in Großbritannien Maschine wo andere Chat-Client laufen verwenden wird in USA Maschine laufen. So, wie eine Socket-Apps mit anderen über das Internet interagieren können. Bitte erklären Sie im Detail, wenn möglich .... oder Sie können mir eine URL von wo ich das Wissen haben .... Danke. – Thomas

+0

Grundsätzlich sollte ein Server auf eingehende Verbindungen "warten". Sobald eine eingehende Verbindung akzeptiert wird, kann ein serverseitiger Verbindungsclient erstellt und für die direkte Kommunikation mit dem bestimmten Remote-Client verwendet werden. Ich empfehle, das Buch nachzuschlagen, das ich erwähnt habe, es hat ein komplettes Arbeitsprobe. – Maciek

3

Allgemein? Ich sehe nicht, wie dies zu C# verwandt ist, aber Client-Server-Architektur sieht wie folgt aus:

Client <-----> Server 

Für so etwas wie Sie beschreiben, wo zwei oder mehrere Clients miteinander kommunizieren, sind Sie nur reden über das Hinzufügen von mehreren Clients:

Client A <---- 
       | 
       ----> Server 
       | 
Client B <---- 

Wenn Client A möchte eine Nachricht an Client B schicken, dann Client A die Nachricht an den Server mit irgendeiner Art von Informationen sendet darauf hinweist, dass es beabsichtigt ist prüft für Client B. der Server Die Nachricht bestimmt, dass sie für Client B vorgesehen ist, und leitet diese Nachricht dann über ihre Verbindung mit Client B weiter.

Dies ist die grundlegende Definition der Client-Server-Architektur. Es gibt erweiterte Architekturen, die Client-Server mit Peer-to-Peer wie Skype kombinieren. In einem hybriden System führt die Verbindung vom Client zum Server typischerweise nur Kontrollnachrichten (Authentifizierung usw.) und fordert Informationen darüber, wie ein anderer Client direkt kontaktiert werden kann. Der Vorteil eines derartigen Ansatzes besteht darin, dass der Kommunikation zwischen A und B nicht benötigt wird, um durch den Server zu fließen; A und B verbinden sich beide mit dem Server, aber sie fragen dann den Server, wie sie sich direkt miteinander verbinden sollen, und verwenden dann diese direkte Verbindung für die bandbreitenintensive Kommunikation.

Das ist alles eine beiseite, wirklich, obwohl. Sie sollten die Client-Server-Architektur unabhängig von einer bestimmten Sprache oder Umgebung lesen bevor Sie den Weg der Entwicklung einer Anwendung beginnen.

+0

danke für deine Antwort ..... ich möchte nur wissen, wie man Code in C# schreibt als Ergebnis zwei Anwendungen in zwei verschiedenen Maschinen können miteinander über das Internet interagieren. Ich werde glücklich sein, wenn Sie mich bitte diesbezüglich führen .... Vielen Dank für Ihre Zeit ..;) – Thomas

Verwandte Themen