Главная страница
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.012 c
2-1261726198
oleg1963
2009-12-25 10:29
2010.02.28
Добавить компонент в класс


15-1261231186
QAZ
2009-12-19 16:59
2010.02.28
дата=число


3-1235327001
Nika
2009-02-22 21:23
2010.02.28
Цветовое выделение групп записей в DBGrid


11-1211784688
Griffit
2008-05-26 10:51
2010.02.28
MCK


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