Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

ProgressBar   Найти похожие ветки 

 
Гоги   (2004-07-14 04:11) [0]

Всем привет. Написал простенький чат с возможностью пересылки файлов на основе TServerSocket&TClientSocket. Клиент отсылающий, сервер принимающий. Файл отсылается с помощью TFileStream. Ни как не соображу, где отлавливать прогресс пересылки файла на отсылающем компе. Помогите решить эту проблему.


 
Digitman ©   (2004-07-14 08:05) [1]

реализуй и используй в качестве стрима своего наследника класса TFileStream

в этом наследнике перекрой виртуальный метод Read() - будешь иметь полный контроль над считыванием блоков файла


 
Гоги   (2004-07-14 19:09) [2]

Спасибо за совет! Все работает!
Но теперь появилась еще одна проблема. В моей программе используется две пары компонентов TClientSocket&TServerSocket, одна пара для пересылки файлов, другая для обмена сообщениями.
То есть создается два разных сокета. И когда они работают параллельно, время от времени возникает ошибка "Asynchronous socket error", ну или что-то вроде этого. Ясно, что необходима какая-то синхронизация. У сокета есть свойство ASyncStyles, это оно?


 
Piter ©   (2004-07-14 22:39) [3]

Гоги   (14.07.04 19:09) [2]
о есть создается два разных сокета. И когда они работают параллельно, время от времени возникает ошибка "Asynchronous socket error",


по-моему, это не из-за того, что они работают параллельно


 
Гоги   (2004-07-15 00:29) [4]

по-моему, это не из-за того, что они работают параллельно
Возможно. Но у меня эта ошибка вылетает только при одновременной передачи данных. Да и то не всегда. Если передается файл и при этом попытаться передать сообщение, примерно в одном из трех случаев возникает ошибка. Сообщение до удаленного компа не доходит.


 
VID ©   (2004-07-15 00:42) [5]

Гоги   (15.07.04 00:29) [4]
может если clientsockt который отправляет файл разместить в потоке А, а clientsocket который "общается" разместить в потоке B то ошибки не возникнет. желательно что бы ни A ни B  не были основным потоком процесса(приложения).

Это всего лишь предположение...


 
Гоги ©   (2004-07-16 01:48) [6]

Я немного изменил алгоритм передачи файлов и ошибка пропала сама собой. Что это была за ошибка, для меня остается загадкой. Большое всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1092918902
Corax
2004-08-19 16:35
2004.09.19
Как правильно закастовать дату?


14-1093695612
able
2004-08-28 16:20
2004.09.19
Что Вы думаете про траффик инспектор?


3-1092988702
Janbolat
2004-08-20 11:58
2004.09.19
Скиньте линки про запросы, query если можно с чем их едят


1-1093890542
Arcady
2004-08-30 22:29
2004.09.19
как справиться с генератором тестов


9-1085317537
Deadly Guest
2004-05-23 17:05
2004.09.19
Помогите