Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Wie viele Sockets bei P2P Programm?

  Alt 5. Okt 2009, 01:00
In deinem Fall würde es 2 Richtige möglichkeiten geben, jenachdem wie du es brauchst, weil:

Beispiel:
Peer A,B,C,D
Peer A hat einen Server, die anderen nur Clients

Peer B,C oder D kann dan nur mit A verbinden, weil bei den anderen Peers keiner ist, der die Daten empfängt, weil das nur Server können, also kann Peer B nicht mit Peer C oder D verbinden, da kein Server vorhanden ist.
Also kann, wenn Peer D Daten hat, nur an Peer A senden. Diese kann dan nicht an Peer D und C senden, weil sie keinen Server haben.

1. Möglichkeit
Wenn bei jedem Peer ein Server ist und mehrer Clients, dann kann Peer A mit Peer B und C oder Peer C mit Peer D,B und A und so weiter verbinden.
Du musst also einen Array von Clients machen und einen Server je Peer. Beispiel:
Wenn sich die Daten bei Peer A zum Beispiel ändern, kann Peer A mit Peer B, C und D verbinden und sie senden.
Dass gleiche mit Peer B, der sich dan mit Peer A,C und D verbinden kann und senden kann.
Das würde dan in etwa so ausehen:
Delphi-Quellcode:
TPeer = class
private
   FClient: array of TClientSocket;
   FServer: TServerSocket;
end;
2. Möglichkeit:
Jeder Peer hat nur einen Server und Client.
Peer A hat Daten für die anderen Peers. Peer A senden sie an Peer B, der sendet sie dann an Peer C und der wiederum dan an Peer D. So haben dan auch alle die Daten.
Das würde kann wie du schon gesagt hast aussehen

Meiner Meinung nach ist die 1. Möglichkeit am günstigsten. Nachteil ist halt, das ein Peer ziemlich viel zu tun hat, bei der 2. Möglichkeit kostet es eher Zeit.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat