Форум: "Потрепаться";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
ВнизКакой максимальный объём данных... Найти похожие ветки
← →
Knight (2003-12-05 23:11) [0]... рекомендуется пересылать через Socket за один раз?
← →
Knight (2003-12-05 23:15) [1]И имеется ли встроенный контроль ошибок или надо проверять данные самому?
← →
Nikolay M. (2003-12-05 23:48) [2]Гигов 20, за раз, не больше :)
А вообще зависит от топологии и настроек сети, протокола и тп. В некоторых случаях нельзя гарантировать, что даже 512 байт придут в том порядке, в каком их послали (по UDP и рядом с ним лежащими протоколами, конечно).
← →
Knight (2003-12-06 00:35) [3]А TServerSocket и TClientSocket рядом лежат или нет?
← →
SPeller (2003-12-06 09:41) [4]Тебе вообще параллельно какими размерами будут пересылаться твои данные - винда сама разберётся.
← →
Knight (2003-12-06 10:44) [5]>> SPeller © (06.12.03 09:41) [4]
Вобщем с размерами понял... послать можно сколько угодно, а там уж как Винда повезёт... :)
Кстати, может что посоветуете...
Использую в своей проге перекачку файлв по ЛВС, решил реализовать докачку, чтобы можно было прервать в любой момент, и продолжить позже. Хочу бить на блоки переменной длинны, в зависимости от текущей загруженности локалки. Делаю на TServerSocket и TClientSocket, но не понял несколько моментов
1) Если отправляешь блок данных, то перезапрашивет ли система пакеты, которые прошли с ошибками, т.е. есть ли гарантия, что блоки будут идентичны.
2) Какие события происходят при ошибках, чтобы их посчитать и при необходимости изменить размер пересылаемых блоков.
← →
Nikolay M. (2003-12-06 10:55) [6]
> SPeller © (06.12.03 09:41) [4]
Не говори того, в чем не уверен на 100%.
> А TServerSocket и TClientSocket рядом лежат или нет?
Нет, они как раз не рядом, а на один уровень выше, поэтому при использовании TServerSocket и TClientSocket тебе действительно все равно, как будет присходить передача данных, потому что эти компоненты работают по протоколу TCP/IP, а он уже по определению обеспечивает надежную передачу данных, чего нельзя сказать о протоколах UDP, IP и проч.
В [2] был дан ответ в общем случае, если ты работаешь действительно через сокеты системы (поскольку в вопросе не было сказано про тип протокола). Советую хотя бы день-два посвятить чтению документации Windows Sockets 2 Reference (идет вместе с дельфи) и изучению хотя бы на уровне картинки стандарта 7-уровневой модели OSI. Многие вопросы отпадут сами, какие бы ты компоненты ни использовал.
← →
Knight (2003-12-06 11:48) [7]>> Nikolay M. © (06.12.03 10:55) [6]
О 7-уровневой модели OSI я когда-то читал. Поэтому и использую, для общих сообщений UDP, а для данных использую Socket"ы под TСP/IP.
Посмотрел Socket Ref... если честно, то моего знания английского хватает только, чтобы разобраться в использовании компонентов, функций и назначении, передаваемых в них, аргументов. Со слитными текстами у меня некоторые сложности, тут понадобится не день и не два, а месяц-другой... :)
← →
Nikolay M. (2003-12-06 11:52) [8]
> Со слитными текстами у меня некоторые сложности, тут понадобится
> не день и не два, а месяц-другой... :)
Ну так надо же когда-то начинать :?)
← →
Knight (2003-12-06 12:49) [9]Придётся, однако... :)
Но всё-таки, можно узнать сколько ошибок было при передаче блока?
← →
Nikolay M. (2003-12-06 12:57) [10]При передаче по TCP/IP ошибок, скорее всего, не будет. Если так заботит этот вопрос, сделай последний байт блока равным остатку от деления суммы всех байт блока на 256. С вероятностю 1/256 увидишь ошибку. Если еще умножить на вероятность возникновения и приема собственно самой ошибки, получится достаточно малая величина.
← →
Knight (2003-12-06 13:01) [11]>> Nikolay M. © (06.12.03 12:57) [10]
Ну ладно... тады на ошибки забью пока. А там на практике поглядим. Спасибо. :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c