Witam!!!
Mam problem z przesyłaniem plików poprzez Indy.
Przesyła małe pliki ale większych już nie przesyła i wyskakuje mi ReadTimeOut.
klienta:
var
odebrany:file;
Buffer:array [0..512] of char;
TotalSize,RealSize,FSize:integer;
sapliki:integer;
begin
sapliki:=idtcpclient1.ReadSmallInt();
while sapliki=1 do
begin
Fsize:=idtcpclient1.ReadInteger();
assignfile(odebrany,sciezka);
rewrite(odebrany,1);
TotalSize:=0;
repeat
begin
realSize:=idtcpclient1.readinteger();
idtcpclient1.ReadBuffer(buffer,realsize);
BlockWrite(odebrany,Buffer,realsize);
TotalSize:=FileSize(odebrany);
end;
until TotalSize=FSize;
closefile(odebrany);
sapliki:=idtcpclient1.ReadSmallInt();
end;
end;
Serwer:
var
SR:TsearchRec;
wysylam:file;
Buffer:array[0..512] of char;
RealSize,TotalSize:integer;
begin
found:=findfirst(sciezka+'*.*',faAnyFile-faSysFile-faDirectory,SR);
while found=0 do
begin
totalSize:=0;
athread.Connection.WriteSmallInt(1);
assignfile(wysylam,sciezka+sr.Name);
reset(wysylam,1);
athread.Connection.WriteLn(sr.Name);
athread.Connection.WriteInteger(FileSize(wysylam));
repeat
begin
Seek(wysylam, TotalSize);
blockread(wysylam,Buffer, SizeOf(Buffer), RealSize);
if realSize<>0 then
begin
athread.Connection.WriteSmallInt(RealSize);
athread.Connection.WriteBuffer(Buffer,RealSize,true);
end;
TotalSize := TotalSize + RealSize;
end; until RealSize=0;
found:=findnext(SR);
end;
end;
</url>
Dodam jeszcze że nie chodzi tylko o procedurę przesyłania plików.
Jak na początku działało wszystko OK tak teraz przestało działac i na potęge pokazuje się ReadTimeOut.
Może coś zepsułem ale nie wydaje mi się ponieważ nie zmieniałem procedur dotyczących komunikacji i nic w niej nie kręciłem.
Teraz nawet starsze wersje nie działają w ogóle (wcześniej działały).
Mógłby mi ktoś powiedziec co jest grane bo nie bardzo kumam.
Z góry dziękuje i pozdrawiam