2012-04-11 10 views
0

Ich habe eine Anwendung, die Client und einen Server hat. Der Server wird im Grunde nur verwendet, um die Dateinamen der Clients zu speichern, damit andere Clients nach Dateien suchen und den Server suchen, den Client mit der gewünschten Datei suchen und die Datei durch direkte Verbindung mit ihm erhalten können . Inzwischen kann ich die Socket-Information des Clients abrufen, der die Datei hat, die von dem anderen Client angefordert wird. Allerdings bin ich jetzt verwirrt darüber, wie diese beiden Clients verbunden werden. Muss ich einen separaten Client und einen Server-Socket zwischen den beiden Clients erstellen oder gibt es andere Möglichkeiten.Verbinden von zwei Client-Socket

Antwort

0

Jetzt haben Sie zwei Möglichkeiten: -

  1. Lassen Sie den Server seine Rolle weiter, und der Server als Vermittler zwischen den beiden Parteien agieren können. Es sollte die Datei von dem Client herunterladen, der es hat, und es (über ein geeignetes Protokoll) an den Client senden, der die Datei angefordert hat. Dies wird Client-Server-Architektur genannt. Dies ist ein einfacher Ansatz, und Sie haben die Vorteile wie Datei-Caching usw., d. H. Wenn in Zukunft dieselbe Datei angefordert wird, kann der Server sie direkt senden, ohne nach dem Client zu fragen.

  2. Sie können weiterhin die P2P-Architektur verwenden und einen separaten Socket zwischen den beiden Parteien erstellen. Dies ist nicht einfach und erfordert besondere Sorgfalt, wenn mehrere Prozesse gleichzeitig ausgeführt werden.