Главная страница
    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.057 c
9-1084886879
istemy
2004-05-18 17:27
2004.09.19
Сферические координаты в OpenGL


1-1093955952
IXT
2004-08-31 16:39
2004.09.19
Dll


8-1088505767
sashok
2004-06-29 14:42
2004.09.19
Проигрывание видео на форме.


6-1089282957
Гость778
2004-07-08 14:35
2004.09.19
Подскажите как вытащить нужную информацию с сайта курса валют


14-1094112245
nick-from
2004-09-02 12:04
2004.09.19
Продлема с StrToDate





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский