#1 26. November 2005 Hi, also wie schon gesagt kann mir einer erklären wie ich mit Delphi mit sockets Dateien versenden kann, weil immer irgendwelche langweiligen Strings zu verschicken is langweilig, wär nett wenn mir einer helfen könnte. + Multi-Zitat Zitieren
#2 26. November 2005 Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls; type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; btnTestSockets: TButton; procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure btnTestSocketsClick(Sender: TObject); private FStream: TFileStream; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var iLen: Integer; // Länge des Streams Bfr: Pointer; // Puffer begin iLen := Socket.ReceiveLength; //empfange Länge GetMem(Bfr, iLen); // Puffer mit der Größe wird reserviert try Socket.ReceiveBuf(Bfr^, iLen); //empfange Puffer FStream.Write(Bfr^, iLen); finally FreeMem(Bfr); // reservierter Puffer wird wieder geleert 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:\temp\test.stream.html', fmCreate or fmShareDenyWrite); // FileStream wird erstellt (auf dem Client) end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Socket.SendStream(TFileStream.Create('c:\temp\test.html', fmOpenRead or fmShareDenyWrite)); //Stream wird gesendet XD end; procedure TForm1.btnTestSocketsClick(Sender: TObject); begin ServerSocket1.Active := True; ClientSocket1.Active := True; end; end. Im Grunde genommen erklärt sich alles von selbst. Du erstellst einen Stream und schickst den von socket zu socket. HF damit... + Multi-Zitat Zitieren