Вниз
Скачать: CL | DM;

Определение переданной информации TWinSocketStream   Найти похожие ветки 

← →
sashap   (2008-06-15 10:44) [0]

Добрый день!
...и сразу к делу!
Есть TClientSocket и TServerSocket в блокирующем режиме. Клиент коннектится к серверу и передает много больший файлов.

Вот кусок из кода клиента:
...
var
 SocketStream:TWinSocketStream;
 FS:TFileStream;
begin
 ...
 SocketStream:= TWinSocketStream.Create(ClientSocket^.Socket,10000);
 ...
 for i:= 1 to file_count do
 try
   FS:= TFileStream.Create(filenames[i], fmOpenRead);
   SocketStream.CopyFrom(FS, FS.Size);
 finally
   FS.Free;
 end;
 ...
end;


У клиента также есть Timer, который каждую секунду выводит на StatusBar"e количество отправленных байт. Как можно узнать это в процессе передачи файла (т.к. он очень большой, для того, чтобы ждать окончания передачи)?
Я пробовал FS.Position и SocketStream.Size, но они не подходят...


← →
Сергей М. ©   (2008-06-15 15:33) [1]

Следует пользовать своего наследника класса TWinSocketStream с перекрытым вирт.методом Write, в теле которого вызывается метод предка, параметры и результат вызова которого дают исчерпывающую инф-цию по интересующему вопросу.


← →
sashap   (2008-06-15 15:59) [2]

Спасибо за ответ! =)

Перефразированный вопрос:
Можно ли в процессе работы TWinSocketStream"а узнать, сколько байт он отослал? Или, Можно ли узнать, на какой стадии находится передача TFileStream (TFileStream.Position не работает)?

Извините, что неправильно выразился.


← →
Сергей М. ©   (2008-06-15 16:01) [3]


> Можно ли в процессе работы TWinSocketStream"а узнать, сколько
> байт он отослал?


см. [1]


>  Или, Можно ли узнать, на какой стадии находится передача
> TFileStream


Тоже самое, но перекрывать следует Read


← →
sashap   (2008-06-15 19:23) [4]

Огромное спасибо!
Теперь все работает отлично!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
2-1261660012
Pup
2009-12-24 16:06
2010.02.28
Запуталась с integer, real, extented и т.д. =(


15-1260950862
Kyn66
2009-12-16 11:07
2010.02.28
Впечатывание данных в типографские бланки


15-1260876342
leo_new
2009-12-15 14:25
2010.02.28
безвозвратное удаление файлов


15-1260978929
AntonioBanderas
2009-12-16 18:55
2010.02.28
PDF


1-1237789977
Riply
2009-03-23 09:32
2010.02.28
Получение EnvironmentStrings среды.




   Наверх