Главная страница
    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.47 MB
Время: 0.01 c
1-89894
Кен
2003-11-12 07:04
2003.11.27
Почему массивы Boolean сохраняются на диск как одно


3-89699
Vemer
2003-11-10 14:49
2003.11.27
Как правильно задать параметр запроса с датой.


1-89902
nop
2003-11-10 16:40
2003.11.27
Поиск значения в памяти процесса


3-89675
paul_k
2003-11-06 11:15
2003.11.27
Помогите подключить Crystal Reports к


3-89725
Digester
2003-11-10 03:15
2003.11.27
Проблемка с вытаскиванием фото из БД Interbase





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