Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Dateiversand über Sockets

  Alt 24. Nov 2008, 14:42
Versenden:
(bringt keinen Fehler)
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var
  ms:TMemoryStream;
  strFolder:string;
  strFileName:string;
begin
  strFolder:='H:\Src\';
  strFileName:='blub.doc';
  ms:=TMemoryStream.create;
  ms.LoadFromFile(strFolder+strFileName);
  ClientSocket1.Socket.SendStream(ms);
end;
Empfangen:
(bringt Windows-Socket-Fehler:
Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen (10053), bei API 'recv'
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  msg:string;
  ms:TMemoryStream;
  strFolder:string;
  strFileName:string;
  zeiger:Pointer;
  bufferlänge:integer;
begin
  strFolder:='H:\Ziel\';
  strFileName:='blub.doc';
  ms:=TMemoryStream.Create;
  bufferlänge:=socket.ReceiveLength;
  Socket.ReceiveBuf(zeiger^,bufferlänge);
  ms.Write(zeiger^,bufferlänge);
// ms.SaveToFile(strFolder+strFileName);
end;
Ich hatte auch schonmal dastehen
Socket.ReceiveBuf(ms,socket.ReceiveLength); da kam aber der gleiche Fehler.
Ich muss zugeben, dass ich zum einen keine Ahnung habe, was ich genau bei ReceivedBuf als 1. Parameter angeben soll, zum anderen weiß ich nicht, wie man den stream zerlegt, den nach und nach schickt und dann irgendwann damit aufhört. Ein _nützliches_ Tutorial habe ich dazu auch nicht gefunden, ich google die ganze Zeit rum, finde aber nur Beiträge von Leuten, die es auch nicht wissen und Anwtworten von Leuten , die nicht bereit sind, es mal zu erklären.
  Mit Zitat antworten Zitat