| Autor |
Beitrag |
NemesisoD
      
Beiträge: 43
|
Verfasst: Di 05.08.03 14:33
Hi,
ich will ein Netzwerkprogramm schreiben, mit dem man Daten über netzwerk Downloaden kann. Texte verschicken funktioniert einwandfrei, aber wie kann ich ganze Daten von mehreren MB größe mit hilfe von TCPIP übertragen?
_________________ Wer nicht programmiert, der lebt nicht!
|
|
Hansi@OMG
      
Beiträge: 304
Vista
Delphi 2006 Prof., Lazarus
|
Verfasst: Di 05.08.03 16:37
Ich versuche das seit fast 4 Monaten, dass ist entweder unmöglich oder extrem schwierig, ich hab es zwar soweit gebracht, dass man 6 MB verschicken kann, aber mehr geht net.
_________________ Who doesn't know the Micrsoft developer "Mahatma Fatal Error"?
|
|
NemesisoD 
      
Beiträge: 43
|
Verfasst: Di 05.08.03 18:19
Würde es rein Theoretisch funktionieren wenn man Byte für Byte auslesen würde und dann senden?
Und anschließend auf den anderen Rechner wieder Byte für Byte zusammen setzen?
_________________ Wer nicht programmiert, der lebt nicht!
|
|
elysm
      
Beiträge: 25
D6 Enter, D6 Pers, D7 Pro
|
Verfasst: Mi 06.08.03 10:47
NemesisoD, eine frage: mit welchen kompo´s arbeitest du?
TServerSocket? oder mit der Indy-Koponente? oder mit den TCPClient/Server dingern?
ich hab Delphi7 und wollte auch sowas ähnliches machen, ich hab aber nur tut´s (o.ä.) für die TServerSocket gefunden!
|
|
NemesisoD 
      
Beiträge: 43
|
Verfasst: Mi 06.08.03 12:41
Also ich benutze die TCPServer/Client, habe damit am besten erfahrung gemacht!
_________________ Wer nicht programmiert, der lebt nicht!
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Do 04.09.03 09:18
damit hats bei mir einigermassen funktioniert getestet hab ich zumindest schon 35 mb dateien..
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;
type TForm1 = class(TForm) ServerSocket1: TServerSocket; ClientSocket1: TClientSocket; Button1: TButton; procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); private FStream: TFileStream; public end;
var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var iLen: Integer; Bfr: Pointer; begin iLen := Socket.ReceiveLength; GetMem(Bfr, iLen); try Socket.ReceiveBuf(Bfr^, iLen); FStream.Write(Bfr^, iLen); finally FreeMem(Bfr); end; end; procedure TForm1.FormCreate(Sender: TObject); begin FStream := nil; end; procedure TForm1.FormDestroy(Sender: TObject); begin if Assigned(FStream) then begin FStream.Free; FStream := nil; end; end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin if Assigned(FStream) then begin FStream.Free; FStream := nil; end; end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin FStream := TFileStream.Create('c:\atest.txt', fmCreate or fmShareDenyWrite); end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Socket.SendStream(TFileStream.Create('c:\btest.txt', fmOpenRead or fmShareDenyWrite)); end; procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Active := True; ClientSocket1.Active := True; end;
end. |
[ www.swissdelphicente...howcode.php?id=1072]
gruss
michael
|
|
blackbirdXXX

      
Beiträge: 1077
Erhaltene Danke: 1
Ubuntu Dapper
|
Verfasst: Do 04.09.03 10:03
Was heißst einigermaßen? Das die Datei halb ankommt. Hie und da fehlt ein bit?
Das erinnert mich an diesen Screenshot wo 'Datei anlöschen steht' 
_________________ Klein, schwarz und ärgert Techniker? Jumper!
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Fr 05.09.03 13:13
einigermassen heisst das ich das den code nur flüchtig getestet habe und bei der übertragung einer textdatei > 1mb immer in der zweiten zeile eine leerzeile eingefügt wurde.. keine ahnung woran das liegt
gruss
michael
|
|
G-man
      
Beiträge: 258
Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
|
Verfasst: Di 09.09.03 16:07
Ein Tutoriallink der den Datenaustausch beschreibr  : www.tutorials.delphi...e/indy/file004.shtml.
_________________ ...To err is human, but to really foul things up requires a computer.
|
|