Конференция "Начинающим" » TidTCPClient сколько данных передали? [D7, WinXP]
 
  • Чудак (17.11.08 22:22) [0]
    передаю файл через TidTCPClient

    client:TidTCPClient

    передаю так:
    client.writestream(stream, true, true, stream.size);

    Как мне во время передачи отобразить сколько данный в данный момент передано???

    спасибо
  • Eraser © (18.11.08 04:09) [1]
    см. события OnWork, OnWorkBegin, OnWorkEnd.
  • Чудак (18.11.08 12:38) [2]

    > Eraser ©   (18.11.08 04:09) [1]
    > см. события OnWork, OnWorkBegin, OnWorkEnd.

    Что то в этих событиях ничего не нашел, или опыта искать не хватает
    в OnWork есть тока всего отправлено но оно тока псле того как все отправится
  • Сергей М. © (18.11.08 12:53) [3]

    > тока псле того как все отправится


    "все" - это сколько конкретно ?
  • Чудак (18.11.08 12:55) [4]

    > "все" - это сколько конкретно ?

    файл полностью (т.е. размер потока)
  • Сергей М. © (18.11.08 12:58) [5]
    Я тебя не спрашиваю полностью или не полностью, я спрашиваю про конкретный размер файла, на котором ты экспериментировал ..
  • Чудак (18.11.08 13:00) [6]
    файл: 60 мегабайт
    в OnWork после тока как передался и вылез его полный размер тоже 60 мегабайт
  • Сергей М. © (18.11.08 13:10) [7]
    Следует создать свой экз-р TIdIOHandler (в нем и обрабатывать OnWork) и  назначить его св-ву IOHandler объекта TIdTCPClient
  • Чудак (18.11.08 15:15) [8]

    > Следует создать свой экз-р TIdIOHandler (в нем и обрабатывать
    > OnWork) и  назначить его св-ву IOHandler объекта TIdTCPClient

    Ого, а примерчик можно а то сложновато сразу вьехать
  • Сергей М. © (18.11.08 15:28) [9]
    ПРимеры имеются в папке с демо-проектами Инди
  • Чудак (18.11.08 16:17) [10]

    > ПРимеры имеются в папке с демо-проектами Инди

    Я извиняюсь но в примерах такого нету
    Ну нету как с клиента отслеживать сколько передалось данных:(((
  • Slym © (18.11.08 16:26) [11]
    проще будет написать TFileStreamReadCalc...
    наследника от TFileStream и в нем считать, только точность будет в "буферсайз" который в client.writestream используется
    можно прокладку наследника от TStream написать который читает из присоединенного TStream подсчитывает и отдает... только теже проблемы с точностью
  • Сергей М. © (18.11.08 16:46) [12]
    Ну тогда пользуй TIdConnectionIntercept

    Уж к нему-то примеры есть 100%-но
  • Чудак (18.11.08 17:17) [13]

    > Slym ©   (18.11.08 16:26) [11]
    > проще будет написать TFileStreamReadCalc...
    > наследника от TFileStream и в нем считать, только точность
    > будет в "буферсайз" который в client.writestream используется
    > можно прокладку наследника от TStream написать который читает
    > из присоединенного TStream подсчитывает и отдает... только
    > теже проблемы с точностью

    А можно примерчик набрасать упроженный???
  • Сергей М. © (18.11.08 18:58) [14]

    > Чудак



    > набрасать



    > упроженный


    Сам-то понял что сказал ?)

    Брась упроженная - это в лес к лешим, а не к мастерам делфи)
  • Чудак (18.11.08 19:40) [15]
    ну ладно глумиться то
    Набросать примерчик можно???
    А то я совсем запутался
  • Сергей М. © (18.11.08 19:45) [16]

    > Чудак   (18.11.08 19:40) [15]


    Ты справку-то проштудировал, запутанно-углумленный ты наш убоже ?)

    Или так и будешь на паперти попрошайничать да язык родной коверкать ?
  • Чудак (18.11.08 20:05) [17]
    читал вот выдержка из книги глубины indy
    Затем возникает серия событий OnWork. В событие OnWork передаются Sender, WorkMode и текущий WorkCount. Данное событие используется для отображения прогресса.
    Как? вразумите неверного его отобразить!!!!!
  • Сергей М. © (18.11.08 20:25) [18]

    > читал вот выдержка .. затем возникает серия


    Что. вот так прямо прочитал выдержка и сразу возникает ?!

    Охх ё ..

    Ну а что насчет [12] ?
    Что там, в Глубинах, по этому поводу возникает сразу прочитамши ?
  • Чудак (18.11.08 20:32) [19]
    про TIdConnectionIntercept тама ничерта нет

    и зачем грамоздит если как то можно без него читать сколько передалось!
    а с TIdConnectionIntercept я ваще повис там чето все замарочено:)
  • Сергей М. © (18.11.08 20:48) [20]
    Ох и стыдно же, наверно, быть таким тупым ..
  • Чудак (18.11.08 20:57) [21]
    исправлюс

    если сделать так
    procedure TForm1.cliWork(Sender: TObject; AWorkMode: TWorkMode;
     const AWorkCount: Integer);
    begin
    progressbar.Progress:=AWorkCount;
    end;

    тут вообщем вроде все пошло
    но мне кажется это лажа
    иу клиента завешение намного ранше (зависит от размеа файла)происходит чем у сервера почему???
    Как скорость то узнать?
    таймером читать AWorkCount не получается:(
  • Сергей М. © (18.11.08 21:35) [22]

    > все пошло


    Не вижу ничего пошлого
  • Чудак (19.11.08 00:06) [23]
    хотелось бы за место стеба увидеть ответ на вопрос как определить скорость передачи данных
  • Eraser © (19.11.08 03:26) [24]
    > [23] Чудак   (19.11.08 00:06)


    > хотелось бы за место стеба увидеть ответ на вопрос как определить
    > скорость передачи данных

    бери производную от количества данных по времени передачи этих данных - будет тебе скорость. эт вроде в школе изучается )
  • Сергей М. © (19.11.08 08:26) [25]

    > Чудак   (19.11.08 00:06) [23]


    Хотелось бы вместо дикого коверкания языка услышать нормальное вразумительное описание проблемы - что сделано и что не получается.
 
Конференция "Начинающим" » TidTCPClient сколько данных передали? [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]