Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какие компоненты выбрать для передачи данных? чат и частая передача файлов 
V
    Опции темы
WDeveloper
Дата 12.2.2007, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Вообще использовал я TServerSocket/TClientSocket компоненты. Но вроде народ говорит, что устарели они уже.
Подумал о переходе на Indy компоненты, но и тут говорят, что кривые они, новые версии не совместимы со старыми и непонятно вообще как там будет с совместимостью у последующих версий.

Вообще под какие проекты ищутся компоненты.

1. Первый проект - чат. Запускается сервер, подключаются клиенты, через сервер идёт общение (подобно ICQ, только многопользовательский режим, т.е. не один-на-один).

2. Второй проект. По типу RAdmin'a система вещания "скриншотов". На одном компе запускается прога передающая "скриншоты" (пожатые есстественно), на ДРУГИХ проги разжимающие потоковую инфу и отображающие.
Т.е. что-то типа проектора, вещающего на удалённые мониторы. Скорее всего в локальной сети. Для Интернет это всё же накладно будет.


Что сейчас прогрессивное человечество использует в этом плане?

PM MAIL   Вверх
MetalFan
Дата 12.2.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(WDeveloper @  12.2.2007,  04:20 Найти цитируемый пост)
Но вроде народ говорит, что устарели они уже

в каком смысле устарели? плохо пахнут? дум3 не тянут?
скажешь тоже) если тебя эти компоненты устраивают и не нужны навороты индей, то юзай их)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
WDeveloper
Дата 12.2.2007, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Ну.. эти компоненты "разбивают" пакеты, "склеивают", из-за этого некоторые проблемы, приходится самостоятельно решать. Может быть есть компоненты свободные от этого.
Кстати, а почему эти компоненты не передают блоками? Вместо этого получается какой-то "своеобразный поток" smile То несколько пакетов прийдёт с одинаковым содержанием, то ещё чего-то..

PM MAIL   Вверх
RA
Дата 13.2.2007, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



www.overbyte.be - ICS
PM   Вверх
Snowy
Дата 13.2.2007, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(WDeveloper @  12.2.2007,  23:12 Найти цитируемый пост)
эти компоненты "разбивают" пакеты, "склеивают", из-за этого некоторые проблемы, приходится самостоятельно решать.
При чём здесь компоненты?
Так работает TCP/IP
Какие бы компоненты не использовались, эту проблему всё равно придётся решать, т.к. работа идёт со стримом, а не с фактом приёма/отправки.
Не устраивает - используй UDP. В этом протоколе отправка идёт пакетами, а не потоком.
PM MAIL   Вверх
WDeveloper
Дата 14.2.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Я имел ввиду может это уже решено на "компонентовом" уровне.

Кстати, а какое преищество потока перед пакетами? Где преимущества явно проследить можно?
Если честно слабо понимаю разницу между потоком (TServerSocket например) и высылаемым по одному символу на пакет ( в UDP например ). Не понятно где может использоваться такой стрим когда то и дело слидишь за тем как пакеты разрываются, дублируются.. На это ресурсов по-моему ещё больше уходит smile
Какой смысл использования потоков? (может я их использую просто не по назначению..)

Можно ли привести примеры ситуаций в которых важен именно поток?
Попытаюсь самостоятельно: потоковое видео, аудио... Но и тут нужно следить чтобы пакеты не дублировались ведь? Опять не видно здесь преимуществ потока.. Хотя если посмотреть иначе. Что получится если подключить не поток, а пакет и малыми пакетами рассылать то же видео.. насколько понимаю это получится намного "хуже" чем при использовании потоков?
мдя smile
PM MAIL   Вверх
Snowy
Дата 14.2.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Экономия траффика
Непрерывные данные
Данные, конечный размер которых не известен либо поток
Маршрутизация - не все сервера маршрутизируют UDP
Гарантированная доставка
Гарантированная очередность доставки при некорректной маршрутизации
Высокий уровень абстракции
Универсальность
Да и вообще поток более логичен

Да резать нужно. Но этим должен заниматься протокол верхнего уровня.
Разработай протокол, или возьми уже реализованный стандартный.
А дальше уже идёт прозрачное его прикладное использование.
Так и должно быть.
Так и есть правильно.
PM MAIL   Вверх
WDeveloper
Дата 15.2.2007, 04:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Snowy, спасибо за развёрнутый ответ, теперь более/менее в голове всё "утряслось".
PM MAIL   Вверх
E_v_g
Дата 19.2.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 15.11.2006

Репутация: нет
Всего: нет



Извините, что вклиниваюсь.  smile 

Цитата

Данные, конечный размер которых не известен либо поток


Каким образом ч/з TServerSocket/TClientSocket принять и передать данные, размер которых заранее неизвестен? Особенно как при приеме определить, что данные уже все приняты?
PM ICQ   Вверх
Matematik
Дата 19.2.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Цитата(E_v_g @  19.2.2007,  12:25 Найти цитируемый пост)
им образом ч/з TServerSocket/TClientSocket принять и передать данные, размер которых заранее неизвестен? Особенно как при приеме определить, что данные уже все приняты? 

Вместе с данными надо посылать их размер
PM MAIL WWW ICQ   Вверх
Snowy
Дата 19.2.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(E_v_g @  19.2.2007,  12:25 Найти цитируемый пост)
Каким образом ч/з TServerSocket/TClientSocket принять и передать данные, размер которых заранее неизвестен? Особенно как при приеме определить, что данные уже все приняты?
А вот этим должен уже заниматься протокол верхнего уровня.
Как вариант: потоковые данные высылаются небольшими пакетами по мере поступления данных.
У каждого пакета должен быть свой заголовочек, где и указан размер и прочие данные, если таковые имеются.
Второй вариант: перекодировать данные так, чтобы исключить попадания в набор символа-терминатора. Но этот вариант менее популярен.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0986 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.