hallo,
entschuldigung hab vorher bwas ich abgeschickt habe einen teil des codes vergessen.!!!!!
hab da einen code und möchte gerne, das der client im ereigniss clientsocket1connect,
wo der stream dann die datei hineinschreibt, mit einem speicherndialog,und nicht ,wie in diesen code wo ich schon vorher den pfad angeben muß umändern, aber ich komm nicht weiter.
client
Code:
private
FStream: TFileStream;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Stream: TFileStream;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.active:=true;
end;
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:\abc\sigi.stream.bmp', fmCreate or fmShareDenyWrite);
end;
end.
server
Code:
FStream: TFileStream;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.active:=true;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendStream(TFileStream.Create('c:\ab\sigi.bmp', fmOpenRead or fmShareDenyWrite));
end;
end.
wer kann mir da weiter helfen.
mfg vader