Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.037 c
3-1092911428
Zif
2004-08-19 14:30
2004.09.19
Подкажите как загрузить JPG в Access через ADOQuery


1-1094543031
intaari
2004-09-07 11:43
2004.09.19
Показ hintа метки пока курсор находится на ней


1-1093967567
Alekc
2004-08-31 19:52
2004.09.19
Работа с ТВ тюнерами


1-1094301723
KA_
2004-09-04 16:42
2004.09.19
Проблема с trunc


3-1092982282
ZZZ
2004-08-20 10:11
2004.09.19
Запрос SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский