Entwickler-Ecke

Internet / Netzwerk - [IndyTCP] Dateiübertragung - Server -> Client


daimoi - Di 06.04.10 22:18
Titel: [IndyTCP] Dateiübertragung - Server -> Client
Hey Leute,
nur 'ne kurze Frage. Wie kann man eine Datei vom Server zum Clienten übertragen?
Ich brauche nicht den ganzen Code, würde reichen wenn ihr mir sowas wie IOHandler.Write für den Server nennt.

Habe bereits gesucht, allerdings habe ich nichts wirklich relevantes gefunden. Die Indy Demos sind auch irgendwie down. Habe vorher nur ein wenig mit den standard Sockets gearbeitet...

Danke im Voraus =)


W4yne - Di 06.04.10 23:01


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
begin
AContext.Connection.IOHandler.ReadStream
end;

Hoffe das is das, was du meinst.

mfg W4yne

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


daimoi - Di 06.04.10 23:07

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Nicht wirklich, möchte eine Datei über den IndyTCPServer an einen bestimmten verbundenen Client verschicken. Danke trotzdem.


W4yne - Di 06.04.10 23:21

Wie wärs mit.

Delphi-Quelltext
1:
AContext.Connection.IOHandler.Write                    

mfg W4yne

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


daimoi - Di 06.04.10 23:26

Ich muss aber einen bestimmten Clienten bestimmen können, so weiß ich ja gar nicht an wen das geht !?


W4yne - Di 06.04.10 23:36


Delphi-Quelltext
1:
AContex.Connection[1].IOHandler.write                    

Ka ob das so funktioniert.

mfg W4yne

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


daimoi - So 11.04.10 01:51

user profile iconW4yne hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
AContex.Connection[1].IOHandler.write                    

Ka ob das so funktioniert.

mfg W4yne

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

Funktioniert nicht und wenn ich die Datei an alle Clienten schicke weiß ich nicht wie ich sie empfangen soll. Es gibt kein Onread Event beim Clienten und auch kein OnExecute *-*

Google spuckt meinen eigenen Thread auf Platz eins aus:
http://www.google.de/search?q=delphi+server+client+datei%C3%BCbertragung&esrch=FT1

Wenn ich einen Timer verwende wird die Verbindung getrennt.
Toll, dass die Indy Komponenten sowas simples nicht bieten. Das sind keine Indy sondern Inder Komponenten aus der dritten Welt ._.
Anscheinend ist es nicht möglich vom Server zum Clienten zu übertragen. Ich werde auf die guten alten Socket Komponenten zurückgreifen, die können wenigstens sowas. Nicht mal die Demos sind erreichbar auf dem Inder Server.


acadam71 - Di 13.04.10 16:16

Also was noch Einfacheres als Daten zum Client zu senden als mit Indy gibt es nicht...
Der Client muss halt mit Read ohne Pause lesen, entweder mit Timer oder im Thread.

Btw: noch einfacher wäre es, wenn Du zusätzlich zu TcpServer/Client einfach noch die FtpServer/Client hinzupacken würdest. Einfach vom Server einen selbstgemachten Befehl (inkl. Dateinamen) an den TcpClient senden, dass er gefälligst die Datei vom FtpServer herunterladen soll - fertig! Dazu könntest Du auch einen anderen FTP-Server nutzen.