Главная страница
    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.45 MB
Время: 0.004 c
6-1212180887
WebSQLNeederr
2008-05-31 00:54
2010.02.28
Изменить настройки Internet Protocol (TCP/IP)


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


2-1261851917
Наталья
2009-12-26 21:25
2010.02.28
протокол UDP


1-1238629573
Opilki_Inside
2009-04-02 03:46
2010.02.28
Непонятное поведение accelerator character


2-1261836632
Student :)
2009-12-26 17:10
2010.02.28
Чтение параметра реестра





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский