| Autor |
Beitrag |
monty.ms
      
Beiträge: 47
|
Verfasst: So 19.06.05 12:37
Hallo
Nachdem ich mittlerweile gut bescheidweis mit dem senden von strings zwischen Client und Server, würde ich nun gerne Dateien senden. Ich habe bereits nach einigen Tutorials geschaut, diese waren jedeoch meist sehr "komplex". Ich will aber jediglich nur das der Client eine Datei öffnet, diese dann an den Server sendet, und der wiederum die Datei speichert. Kennt vlt jemand ein gutes Tutorial dazu, oder kann mir einer ansatzweise erklären wie ich das hinbekomme?
ich danke im vorraus =)
monty
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: So 19.06.05 13:28
Moin...
Bei deiner Frage ist es eigentlich ziemlich wichtig, dass du uns sagst, welche Komponente du benutzt. Bei TServerSocket z.B. kannst du dir ja mal SendStream() angucken.  Dabei hilft dir auch die Delphi-Online-Hilfe.
| Zitat: | Writes all the information that can be read from the AStream parameter to the socket connection.
Delphi syntax:
function SendStream(AStream: TStream): Boolean;
C++ syntax:
bool __fastcall SendStream(Classes::TStream* AStream);
Description
Use SendStream to write to the socket connection. The writing may occur in the OnSocketEvent event handler of a Windows socket object or in the OnWrite or OnClientWrite event handler of a socket component. Alternately, SendStream may write from a socket that is expected to write to the connection without a notification to signal the connection’s readiness to read. SendStream reads information from the stream indicated by AStream and writes it to the socket connection. The value returned by SendStream indicates whether any information was successfully written to the connection.
Note: The Stream passed as a parameter to SendStream becomes “owned” by the windows socket object. The Windows socket object frees the stream when it is finished with it. Do not attempt to free the stream after it has been passed as a parameter. |
|
|
monty.ms 
      
Beiträge: 47
|
Verfasst: So 19.06.05 15:51
hallo,
also z.Z verwende ich die Komponenten idTCPClient / Server Komponenten, ich weis aber nicht ob diese auch für den datei transfer geeignet sind?! Ich verwende übrigens Delphi 7 Enterprise..
monty
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: So 19.06.05 15:59
|
|
monty.ms 
      
Beiträge: 47
|
Verfasst: Mo 20.06.05 14:04
danke schön, die Links haben mir sehr geholfen. Eine Frage hab ich da aber mal noch: Wie kriege ich es hin, dass ich den Fortschritt anzeige und die Geschwindigkeit mit der übertragen wird?
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 21.06.05 12:23
monty.ms hat folgendes geschrieben: | | danke schön, die Links haben mir sehr geholfen. Eine Frage hab ich da aber mal noch: Wie kriege ich es hin, dass ich den Fortschritt anzeige und die Geschwindigkeit mit der übertragen wird? |
Hmm... Da wirst du schauen müssen, wie groß die Datei insgesamt ist und dann anhand der bereits empfangenen Bytes einen Prozentsatz zusammenstellen. Den kannst du dann z.B. mit TGauge darstellen. 
|
|
monty.ms 
      
Beiträge: 47
|
Verfasst: Di 21.06.05 14:21
joa.. aber wie finde ich die übermittelten bytes heraus? ich habe nur versucht, dass der Server sagt wie groß die Datei ist, und der Client alle einer sekunde schaut wie groß die datei bereits ist, das problem an der sache ist, dass er sofort die richtig größe angibt, wie sind am ende sein soll!
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 21.06.05 14:26
Müsstest du doch anhand des Buffers und BufSize() rausbekommen, oder? Schau mal in die Delphi-Hilfe unter BufSize() nach... 
|
|
monty.ms 
      
Beiträge: 47
|
Verfasst: Mo 27.06.05 12:21
mh.. ich hab das jetzt mit dem buffsize versucht, aber irgendwie krieg ich das nicht hin  Hast du mal ein kleines bsp dafür?
|
|