| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > TClientSocket и TServerSocket |
| Автор: Marlin 10.3.2006, 11:06 | ||
| Как возможно отследить передачу данных, т.е. сколько данных передано и отследить окончание передачи этих же данных. Это все нужно для отображения прогресса и закрытия соеденения. Люди подскажите, а то у меня уже голова не соображает из за этих сокетов. Данные отправляю одной строкой
Этот вопрос поднимался на форуме, но исходник где все это показано настолько намудрен, что я не могу разобраться. Я предпологаю, что пакет данных который записывается нужно отслеживать в обработчике OnWrite и на этом мысль закнчивается Подкинте если не трудно не навороченный пример с передачей файла от клиента к серверу и тображением прогресса на обоих точках, а по завершению передачи, клиент должен разрывать соеденение. |
| Автор: Marlin 10.3.2006, 11:15 | ||
| Я пробывал работать с инди, но он работает в блокирующем режиме, и вешает всю систему. Прием файла я веду таким способом
Здесь прогресс отобразить возможно, передав сначала ему размер файла, а после прибавляя каждую порцию. Но вот, что с клиентом делать. Мой клиент время от времени должен конектиться и передавать файлы. Но почему-то первая передача проходит нормально, а на второй выдает ошибку. Я думаю это из за того, что я не могу отловить окончание передачи и нормально закрыть соеденения |
| Автор: Marlin 10.3.2006, 13:41 | ||||
| Отправляю данные порциями. А на сервере этот файл растет и растет пока принудительно не разорвешь соеденение. код отправки
может что-то не так делаю код приема
|
| Автор: Демо 10.3.2006, 15:59 |
| Marlin, Позже постараюсь пример сделать. |
| Автор: N1k 10.3.2006, 17:27 | ||
Но все это не больше чем пример. |
| Автор: Marlin 10.3.2006, 18:12 |
| спасибо сейчас пойду проверю |
| Автор: Marlin 11.3.2006, 10:41 |
| Нет такой код не пойдет. Он файл заносит в оперативную память, а если файл 600 - 700 мб А хочу зделать так: Считать порцию файла и отправить, потомом опять считать и отправить, а на том конце тоже самое только наоборот. Я так делал, только почему-то файл не дописывается. Кому не сложно, я был бы рад помощи. |
| Автор: Marlin 11.3.2006, 11:34 |
| Самое главное, чтобы файлы большого размера можно было бы передовать. А TFileStream - файл подгружает в оперативку? как TMemoryStream |
| Автор: N1k 11.3.2006, 11:53 | ||
Ну народ, я с вас варюсь...
|
| Автор: Marlin 11.3.2006, 13:33 |
| Спасибо!! Похоже это то, что нужно. |
| Автор: Marlin 13.3.2006, 11:28 | ||||
| Я немного подправил код. код который выше. А то большие файлы не докачиваются до конца. SERVER
CLIENT
|
| Автор: ukk 28.3.2006, 22:22 |
| А не мог бы кто нить исходником выполнить, тоже самое что и чуть выше написанно, только без прогресса (тоесть без Gauge) и побольше коммента ? Буду очень благодарен! |