Главная страница
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.033 c
14-1093974600
Mim1
2004-08-31 21:50
2004.09.19
Может пригодится. (софтинка)


4-1092036738
}|{yk
2004-08-09 11:32
2004.09.19
Как бы попроще получить иконку приложения?


14-1093586057
MBo
2004-08-27 09:54
2004.09.19
Пятничная разминка. Задачки для ума и сердца ;)


14-1094120536
lipskiy
2004-09-02 14:22
2004.09.19
Посоветуйте программку мониторинга обращений по сети.


3-1093007540
kukuikar
2004-08-20 17:12
2004.09.19
звездочки вместо символов