Entwickler-Ecke
Internet / Netzwerk - Datenaustausch über Netzwerk
NemesisoD - Di 05.08.03 14:33
Titel: Datenaustausch über Netzwerk
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?
Hansi@OMG - 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.
NemesisoD - 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?
elysm - 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 - Mi 06.08.03 12:41
Also ich benutze die TCPServer/Client, habe damit am besten erfahrung gemacht!
focus - Do 04.09.03 09:18
damit hats bei mir einigermassen funktioniert getestet hab ich zumindest schon 35 mb dateien..
Delphi-Quelltext
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. |
[
http://www.swissdelphicenter.ch/de/showcode.php?id=1072]
gruss
michael
blackbirdXXX - Do 04.09.03 10:03
Was heißst einigermaßen? Das die Datei halb ankommt. Hie und da fehlt ein bit? :D
Das erinnert mich an diesen Screenshot wo 'Datei anlöschen steht' 8)
focus - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!