![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Как возможно отследить передачу данных, т.е. сколько данных передано и отследить окончание передачи этих же данных.
Это все нужно для отображения прогресса и закрытия соеденения. Люди подскажите, а то у меня уже голова не соображает из за этих сокетов. Данные отправляю одной строкой
Этот вопрос поднимался на форуме, но исходник где все это показано настолько намудрен, что я не могу разобраться. Я предпологаю, что пакет данных который записывается нужно отслеживать в обработчике OnWrite и на этом мысль закнчивается Подкинте если не трудно не навороченный пример с передачей файла от клиента к серверу и тображением прогресса на обоих точках, а по завершению передачи, клиент должен разрывать соеденение. Это сообщение отредактировал(а) Marlin - 10.3.2006, 11:07 --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 3 Всего: 50 |
Нет, OnWrite срабатывает тогда, когда сокет
Передавай частями SendBuf. -------------------- |
||||
|
|||||
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Я пробывал работать с инди, но он работает в блокирующем режиме, и вешает всю систему.
Прием файла я веду таким способом
Здесь прогресс отобразить возможно, передав сначала ему размер файла, а после прибавляя каждую порцию. Но вот, что с клиентом делать. Мой клиент время от времени должен конектиться и передавать файлы. Но почему-то первая передача проходит нормально, а на второй выдает ошибку. Я думаю это из за того, что я не могу отловить окончание передачи и нормально закрыть соеденения --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
Marlin |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Отправляю данные порциями.
А на сервере этот файл растет и растет пока принудительно не разорвешь соеденение. код отправки
может что-то не так делаю код приема
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
||||
|
|||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 3 Всего: 50 |
Marlin,
Позже постараюсь пример сделать. -------------------- |
|||
|
||||
N1k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: 2 Всего: 2 |
Но все это не больше чем пример. |
|||
|
||||
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
спасибо сейчас пойду проверю
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Нет такой код не пойдет. Он файл заносит в оперативную память, а если файл 600 - 700 мб
А хочу зделать так: Считать порцию файла и отправить, потомом опять считать и отправить, а на том конце тоже самое только наоборот. Я так делал, только почему-то файл не дописывается. Кому не сложно, я был бы рад помощи. --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Самое главное, чтобы файлы большого размера можно было бы передовать.
А TFileStream - файл подгружает в оперативку? как TMemoryStream --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
N1k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: 2 Всего: 2 |
Ну народ, я с вас варюсь...
|
|||
|
||||
Marlin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Спасибо!!
Похоже это то, что нужно. --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
Marlin |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Я немного подправил код. код который выше.
А то большие файлы не докачиваются до конца. SERVER
CLIENT
Это сообщение отредактировал(а) Marlin - 13.3.2006, 11:30 --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
||||
|
|||||
ukk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 20.12.2005 Где: Минск Репутация: нет Всего: нет |
А не мог бы кто нить исходником выполнить, тоже самое что и чуть выше написанно, только без прогресса (тоесть без Gauge) и побольше коммента ? Буду очень благодарен!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |