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

Вниз

Ошибка при передаче файла   Найти похожие ветки 

 
Beglec   (2003-09-30 00:05) [0]

Этот вопрос задавал, но вразумительного ответа не услышал.
В общем есть TServerSocket и TClientSocket

клиенты посылают запросы что им требуется всякие файлы.

Server: -> Socket.SendStream(TMemoryStream);

если Клиент один подцеплен к серверу то все ОК вне зависимости от размера файла.

Если хотя бы два подцепились и запросили файло, то получается жопа. Оба клиента не получают файлы.
А сервер пишет что типа мол "я то отправил файло, ко мне притензий не каких".

Что странно... Делал файло размером в 1GB и сервер отправилял этот гиг за 1с. (что сами понимаете физически не возможно).
При коннекте одного клиента в конце концов клиент получает файл.
При коннекте более 1 клиента маленькие файлы еще пролетаю а большие застревают.

Вообщем как я понял нужно обрабатывать событие OnWrite.
внимание вопрос: но как правильно обрабатывать onWrite кто подскажет?


 
Digitman   (2003-09-30 08:09) [1]


> но вразумительного ответа не услышал.


нет вразумительного вопроса - нет и вразумительного ответа


> то получается жопа


ну очень "вразумительное" объяснение проблемы !


> сервер пишет что типа мол "я то отправил файло, ко мне притензий
> не каких".


не может он такого "писать", если только ты сам его не заставишь эту чушь рисовать на экране


> нужно обрабатывать событие OnWrite.


безусловно !


 
Verg   (2003-09-30 10:16) [2]

http://delphimaster.net/view/6-1063782976/


 
Fredericco   (2003-09-30 10:59) [3]

Событие OnWrite, как на клиентской стороне так и на серверной, символизирует лишь об одном: сокет готов к передаче данных. Готовность сокета есть следствие двух причин:
1) Сокет создался, подконнектился и готов к пердаче;
2) В процессе отправки информации буфер сокета заполнился, а вот теперь освободился и готов снова к передаче данных.

Как обрабатывать постарайся сам разобраться, а то эффекта не будет.


 
beglec   (2003-10-02 21:22) [4]

Digitman ->
Вопрос я думаю "вразуметельно" написан :)
Вопрос: Как правильно обрабатывать onWrite?

Сам попробуй
по событию
OnClick;
Socket.SendStream(TFileSteram) (размером скажем с 1 GB)
ShowMessage("Операция выполнена");

Засеки через сколько появился это сообщение?
А потом может и поймешь мой "вразумительный" вопрос.

С Уважением


 
Anatoly Podgoretsky   (2003-10-02 21:53) [5]

Еще раз читаем Digitman © (30.09.03 08:09) [1]

нет вразумительного вопроса - нет и вразумительного ответа


 
Digitman   (2003-10-03 08:17) [6]


> Socket.SendStream(FileSteram) (размером скажем с 1 GB)
> ShowMessage("Операция выполнена");


да не выполнена она !)
убедись в этом сам :

Socket.SendStream(MyStream)
try
ShowMessage("На данный момент в очередь на передачу поставлено " + IntToStr(MyStream.Position) + " байт из данного потока); // [1]
except
ShowMessage("Операция выполнена, поток полностью поставлен в очередь передачи и уничтожен !"); // [2]
end;

если возникнет ситуация [1], то жди обязательного возбуждения события OnWrite() и повтори в его обработчике исполнение всего этого куска кода !



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

Форум: "Сети";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-89867
DimaK
2003-11-15 23:13
2003.11.27
Обновление трея


3-89680
Petrovick
2003-11-06 14:48
2003.11.27
Где можно скачать статью или пример работы с АДО


14-90089
flip
2003-11-04 18:43
2003.11.27
Srochno


3-89684
labanga
2003-11-06 13:36
2003.11.27
Отчет в QReport


6-90039
SaML
2003-10-01 09:42
2003.11.27
Помогите плиз...





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