Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.28;
Скачать: 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 вся ветка

Текущий архив: 2010.02.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
2-1261660605
DL
2009-12-24 16:16
2010.02.28
inline


1-1220851151
Xandr001
2008-09-08 09:19
2010.02.28
Методы хранения сильно разреженных матриц


2-1261668633
alex123
2009-12-24 18:30
2010.02.28
Connect через svchost.exe


2-1261640332
pest
2009-12-24 10:38
2010.02.28
Создание своего компонента-контейнера


4-1229437908
yul1984
2008-12-16 17:31
2010.02.28
RichEdit и EM_SETSCROLLPOS