Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Данные по Tcp


Krann ©   (2002-08-29 16:33:00) 

Уважаемые мастера Опять же не по адресу но всё же посмотрите плз.
Почему то в первом случае 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:00) [1]

по моему тебе перед посылкой "end" нужно Flush"ить стрим


Наверх

Титульная страница Поиск, карта сайта Написать письмо