![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача данных [D6]
Victor! © (2004-02-03 16:51:00)Подскажите какой компонент лучше использовать для передачи данных больших обьемов по сети. Или как правильно использовать TServerSocket и TClientSocket, а то при посылке данных (с помощью SendBuf) больше чем 8kb они делются по 8kb на стороне сервера, а на стороне клиента не правильно собираются.
Verg (2004-02-03 18:31:00) [1]
> оно разбивает данные на сервере и соединяет их на клиенте
> непонятным образом.
Оноконечно разбивает ( егоправо), но вот оноуж точно ничего не соединяет. Соединить обратно (а это несложно) - это твоя задача. Онотолько гарантирует, что последовательность фрагментов на приемной строне будет правильной, а данные абсолютно достоверны. Сколько и какие переданы - точно те же и столько же будут приняты и в той же последовательности, если факт установленного соединения имеет место быть.
Ни о каких вставках, никаких нулей речи уж быть не может - это стопудово.
Dimaz-z (2004-02-03 18:30:00) [2]У меня мысля есть - кодировать все файлы при помощи Base64 в текст, потом это отсылать, склеивать ( http://delphibase.endimus.ru/?action=viewtopic&topic=nettransfer), и потом на другой стороне преобразовывать в файлы...
panov (2004-02-03 18:20:00) [3]>Victor! (03.02.04 18:05) [2]
У тебя ошибка в реализации или алгоритме.
Victor! (2004-02-03 18:05:00) [4]Ай спасибо! Но вот проблема: при посылке TServerSocket.Socket.SendBuf() данных более 4Kb(в 98-й) и 8kb(в 2000), ?kb(в другой винде) при приёме, оно разбивает данные на сервере и соединяет их на клиенте непонятным образом.
Т.е. например посылаются данные:
111111111111111111111111111111...
\---4kb---/\---4kb---/\---4kb-...
оно принимает
1111111111111111~~~~~111111~~~~~1111... ~ - нули
\---4kb---/\---4kb---/\---4kb---/\--...
Причём нули вставляются каждый раз в разных местах и кусками разного размера.
Вопрос: КАК этого избежать? ИЛИ есть ли какая-нибудь компонента, в которой такого маразма нету?
Digitman (2004-02-03 17:07:00) [5]TServerSocket и TClientSocket