Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: datei versand client->server->client

  Alt 16. Jan 2007, 09:27
Zitat von ghost007:
hi,
was ich vermeiden möchte ist das man den port freigegeben haben muss um dateien zu senden.
Die eigentliche frage die sich somit stellt ist:
kann ich auch vom server zum client daten schicken?
wenn ja, wie?
Wie jetzt
Du möchtest Daten verschicken aber ohne Port? Dann ist TCP/IP sicherlich keine Lösung für Dich! Egal ob Du Daten empfängst oder sendest, in beiden Fällen muss dafür ein Port geöffnet werden, darauf basiert gerade das Protokoll.
An sich wird man eher selten versuchen alle Verbindungen unnötig offen zu halten. Natürlich kannst Du ständig die Verbindung jedes Klienten zum Server aufrecht erhalten und über die Verbindung auch wieder antworten verschicken, aber das wäre (imho) Ressourcenverschwendung und wenig praktikabel. In der Regel willst Du bei einem Server nur eine bestimmte Anzahl von gleichzeitigen Verbindungen erlauben, Verbindungen die hier also einfach nur warten ob mal irgendwann ein Paket für sie kommt sind da eher unnütz. Dann käme da auch noch die Timeoutproblematik hinzu, wann hast Du denn bei so einer Verbindung wirklich ein Timeout? Wann wartest Du einfach nur? Usw.
Das eigentliche Problem würdest Du damit aber natürlich auch nicht lösen, denn der Port zum Server bleibt ebenfalls blockiert.

Hier solltest Du lieber ereignisorientiert arbeiten und immer dann eine Verbindung vom Server zu einem Client aufbauen, wenn wirklich etwas übertragen wird (auch nur Informationen). Dabei wird der Port/ die Verbindung nur so lange aufrecht erhalten wie es wirklich nötig ist. Hierbei solltest Du natürlich die Möglichkeit vorsehen, dass der Client bei seiner "Anmeldung" am Server mitteilen können sollte, auf welchem Port er gerne Antworten hätte. Im einfachsten Fall ist es natürlich gleich der Port von dem aus er die Anfragen stellt. Der Benutzer sollte hier einfach nur die Möglichkeit haben diesen Port zu wählen (dann sollten auch Firewalls kein Problem sein).

Gruß Der Unwissende
  Mit Zitat antworten Zitat