Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
ВнизДанные по Tcp Найти похожие ветки
← →
Krann (2002-08-29 16:33) [0]Уважаемые мастера Опять же не по адресу но всё же посмотрите плз.
Почему то в первом случае Writeln работает правильно а во втором с ошибкой.
procedure TServerForm.TCPServerExecute(AThread: TIdPeerThread);
const
Mass=100;
var
FileName,SRequest: string;
FStream,Kusok: TFileStream;
I,pos :Integer;
begin
with AThread.Connection do
begin
WriteLn("Hello from Indy TCP Stream Server.");
try
SRequest := UpperCase(ReadLn);
if SRequest = "GETTING" then
begin
FStream:=TFileStream.Create("D:\test.log",fmOpenReadWrite);
Kusok := TFileStream.Create("D:\kusok.log",fmCreate or fmShareDenyRead);
//передаем первые 100 байт
OpenWriteBuffer;
Kusok.CopyFrom(FStream,Mass);
WriteStream(Kusok);
CloseWriteBuffer;
Writeln("Qaz");
здесь предается именно "Qaz"
//передаем вторую порцию из 100 байт
OpenWriteBuffer;
Kusok.CopyFrom(FStream,Mass);
WriteStream(Kusok);
CloseWriteBuffer;
// а здесь передается не "End" на самом деле а Kusok + "End"
// тк клиент на Readln возвращает именно Kusok + "End"
Writeln("End");
FStream.Free;
Label1.Caption:= "Файл отправлен";
end;
finally
Disconnect;
end;
end;
end;
end.
← →
max2057 (2002-08-29 17:25) [1]по моему тебе перед посылкой "end" нужно Flush"ить стрим
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c