![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
WDeveloper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Вообще использовал я TServerSocket/TClientSocket компоненты. Но вроде народ говорит, что устарели они уже.
Подумал о переходе на Indy компоненты, но и тут говорят, что кривые они, новые версии не совместимы со старыми и непонятно вообще как там будет с совместимостью у последующих версий. Вообще под какие проекты ищутся компоненты. 1. Первый проект - чат. Запускается сервер, подключаются клиенты, через сервер идёт общение (подобно ICQ, только многопользовательский режим, т.е. не один-на-один). 2. Второй проект. По типу RAdmin'a система вещания "скриншотов". На одном компе запускается прога передающая "скриншоты" (пожатые есстественно), на ДРУГИХ проги разжимающие потоковую инфу и отображающие. Т.е. что-то типа проектора, вещающего на удалённые мониторы. Скорее всего в локальной сети. Для Интернет это всё же накладно будет. Что сейчас прогрессивное человечество использует в этом плане? |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
в каком смысле устарели? плохо пахнут? дум3 не тянут? скажешь тоже) если тебя эти компоненты устраивают и не нужны навороты индей, то юзай их) -------------------- There are always someone smarter than you... |
|||
|
||||
WDeveloper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Ну.. эти компоненты "разбивают" пакеты, "склеивают", из-за этого некоторые проблемы, приходится самостоятельно решать. Может быть есть компоненты свободные от этого.
Кстати, а почему эти компоненты не передают блоками? Вместо этого получается какой-то "своеобразный поток" ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
www.overbyte.be - ICS
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Так работает TCP/IP Какие бы компоненты не использовались, эту проблему всё равно придётся решать, т.к. работа идёт со стримом, а не с фактом приёма/отправки. Не устраивает - используй UDP. В этом протоколе отправка идёт пакетами, а не потоком. |
|||
|
||||
WDeveloper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Я имел ввиду может это уже решено на "компонентовом" уровне.
Кстати, а какое преищество потока перед пакетами? Где преимущества явно проследить можно? Если честно слабо понимаю разницу между потоком (TServerSocket например) и высылаемым по одному символу на пакет ( в UDP например ). Не понятно где может использоваться такой стрим когда то и дело слидишь за тем как пакеты разрываются, дублируются.. На это ресурсов по-моему ещё больше уходит ![]() Какой смысл использования потоков? (может я их использую просто не по назначению..) Можно ли привести примеры ситуаций в которых важен именно поток? Попытаюсь самостоятельно: потоковое видео, аудио... Но и тут нужно следить чтобы пакеты не дублировались ведь? Опять не видно здесь преимуществ потока.. Хотя если посмотреть иначе. Что получится если подключить не поток, а пакет и малыми пакетами рассылать то же видео.. насколько понимаю это получится намного "хуже" чем при использовании потоков? мдя ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Экономия траффика
Непрерывные данные Данные, конечный размер которых не известен либо поток Маршрутизация - не все сервера маршрутизируют UDP Гарантированная доставка Гарантированная очередность доставки при некорректной маршрутизации Высокий уровень абстракции Универсальность Да и вообще поток более логичен Да резать нужно. Но этим должен заниматься протокол верхнего уровня. Разработай протокол, или возьми уже реализованный стандартный. А дальше уже идёт прозрачное его прикладное использование. Так и должно быть. Так и есть правильно. |
|||
|
||||
WDeveloper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Snowy, спасибо за развёрнутый ответ, теперь более/менее в голове всё "утряслось".
|
|||
|
||||
E_v_g |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 15.11.2006 Репутация: нет Всего: нет |
Извините, что вклиниваюсь.
![]()
Каким образом ч/з TServerSocket/TClientSocket принять и передать данные, размер которых заранее неизвестен? Особенно как при приеме определить, что данные уже все приняты? |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
||||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
А вот этим должен уже заниматься протокол верхнего уровня. Как вариант: потоковые данные высылаются небольшими пакетами по мере поступления данных. У каждого пакета должен быть свой заголовочек, где и указан размер и прочие данные, если таковые имеются. Второй вариант: перекодировать данные так, чтобы исключить попадания в набор символа-терминатора. Но этот вариант менее популярен. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |