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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TServerSocket и TClientSocket 
V
    Опции темы
Ak47black
  Дата 15.8.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Здравствуйте.
Хочу спросить у кого опыт есть работы с этими компонентами, насколько коретно сделаны эти компоненты с точки зрения оптимизации.
И насколько быстрее будет если работать на низком уровне с сокетами?
PM MAIL   Вверх
Snowy
Дата 15.8.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Ak47black @  15.8.2007,  18:34 Найти цитируемый пост)
Хочу спросить у кого опыт есть работы с этими компонентами, насколько коретно сделаны эти компоненты с точки зрения оптимизации.
Считаются устаревшими и идут в комплекте только для поддержки старых программ.

Цитата(Ak47black @  15.8.2007,  18:34 Найти цитируемый пост)
И насколько быстрее будет если работать на низком уровне с сокетами?
Что быстрее? Передача по сети? Здесь узкое место - канал, а не скорость библиотеки.
С какой библиотекой не работай - скорость одинакова.
Разная только нагрузка на систему (память, проц), но её трудно заметить невооружённым глазом.
PM MAIL   Вверх
Ak47black
Дата 15.8.2007, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ок. А как предпочитаешь, через что работать с сокетами?
Хотелбы работать с тем что меньше всего жрёт ресурсов.
Тут скорей всего на низком уровне надо?
PM MAIL   Вверх
Sanchezzz
Дата 15.8.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



работай напрямую winsock создавай свой класс сокета и пиши что хочешь напишешь или INDY еще есть старые добрые ICS компоненты рекомендую.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
dumb
Дата 15.8.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Ak47black,
"Premature optimization is the root of all evil" (с) Tony Hoare
Оптимизация – ваш злейший враг
PM MAIL   Вверх
EvilsInterrupt
Дата 20.8.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Snowy, чего скажешь страшном "порты завершения" ? ;)
PM MAIL WWW ICQ Jabber   Вверх
Snowy
Дата 20.8.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(EvilsInterrupt @  20.8.2007,  19:33 Найти цитируемый пост)
Snowy, чего скажешь страшном "порты завершения" ?
Ничего не скажу.
Я понимаю русский и английский. Эту фразу перевести не могу - данным видом славянского языка не владею...
PM MAIL   Вверх
Ak47black
Дата 23.8.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Что быстрее? Передача по сети? Здесь узкое место - канал, а не скорость библиотеки.
С какой библиотекой не работай - скорость одинакова.

У меня такая тут ситуация с этими  двумя компонентами.
Получается что нагрузки на CPU нету, ни на сеть (Lan), а данные передаются медлено.
У меня скорость большая 100/sec, но и передаю я по 30 байт гдето (Перемешение курсора).
Так привык к этим компонентам ,а тут такая вот ерунда  smile , ктонибудь может чтото посоветовать?

Это сообщение отредактировал(а) Ak47black - 23.8.2007, 15:27
PM MAIL   Вверх
Snowy
Дата 23.8.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А ты не отправляй по 1 байту.
Собири все данные в единый блок и отправляй всё кучей.
Иначе у тебя получится много вызовов и куча мелких пакетов.
А это не способствует высокой скорости передачи - у тебя так служебной информации больше, чем данных получится.
PM MAIL   Вверх
Ak47black
Дата 23.8.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Snowy, у меня тут такая ситуация, что не особо и соберешь-то их.
Например вот простое перемещение курсора отправить, элементарный пример выкладываю.
Курсор движется совсем негладко.
(Это только видно с двумя компами)

Это сообщение отредактировал(а) Ak47black - 24.8.2007, 09:29
PM MAIL   Вверх
Ak47black
Дата 23.8.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

А это не способствует высокой скорости передачи - у тебя так служебной информации больше, чем данных получится. 

Ну тэк по 8 байт идет передача.
Конечно это маленькие пакеты, но трафику по Lan это совсем не забивает, даже если служебной инфы будет много.
PM MAIL   Вверх
Snowy
Дата 23.8.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А дело и не в забивке канала.
В твоём случае ты постоянно шлёшь пакетики мелкобайтные.
Но непрерывно.
Поэтому винда сама за тебя оптимизирует - ждёт, пока накопится информация и отправляет её стайкой.
А потом ещё ждёт подтверждающего пакета, то всё доставлено.
Может тебе лучше UDP использовать?
PM MAIL   Вверх
Ak47black
Дата 23.8.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Поэтому винда сама за тебя оптимизирует - ждёт, пока накопится информация и отправляет её стайкой.

Ааа) да читал про такое)
Неа UDP то не годиться. Хочу всетаки с TCP добить. Можно-ли както заставить не оптимизировать?

Это сообщение отредактировал(а) Ak47black - 23.8.2007, 17:14
PM MAIL   Вверх
dumb
Дата 23.8.2007, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Код

var
  flag: Integer;
begin
  flag:=1;
  setsockopt(socket, IPPROTO_TCP{6}, TCP_NODELAY{1}, PChar(@flag), SizeOf(Integer));

PM MAIL   Вверх
Ak47black
Дата 23.8.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ура !!! Вроде все заработало, буду дальше тестить.
Snowy, спасибо за диагноз. +
dumb, за противоядие. +
А вообще при каких случаях желательно с оптимизацией работать, или при быстрой передаче её выгодней отрубить вообще?
PM MAIL   Вверх
Snowy
Дата 23.8.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если канал широкий и пользователей не очень много, то можно смело отрубать.
Если траф стоит денежку, то лучше не стоит.
Если в сети много активных пользователей, то ты будешь вызывать много коллизий, от чего упадёт общая производительность сети. Если конечно твой траф выходит на общий канал...
Хотя не думаю, что может существенно упасть. Только если все юзеры будут производить подобные отправки smile
PM MAIL   Вверх
Gwire
Дата 23.8.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

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



Цитата(Ak47black @  23.8.2007,  15:49 Найти цитируемый пост)
у меня тут такая ситуация, что не особо и соберешь-то их

Код

type
  TReadBuffer = array [0..511] of Char;

// . . .

function SetDataOnShift(P: Pointer; Sh: Integer; D: Char): Pointer; 
begin
    Result:= Pointer( Integer(P) + Sh );
    Char(Result^):= D;
end;

// . . .

var 
  Buffer: TReadBuffer;

// . . .

    SetDataOnShift( @Buffer, i, Data);
    if i = 511 then
    begin
        i:= 0;
        ClientSocket1.Socket.SendBuf( Buffer, SizeOf(TReadBuffer ) );
    end else Inc(i);

Собирай и отпрапляй. "RAdmin" пишешь? Если да - пригодится.
Кстати, ни чего постыдного нет в использовании старых компонентов если они работают с новым оборудованием.


Это сообщение отредактировал(а) Gwire - 23.8.2007, 20:13
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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