Текущий архив: 2002.04.18;
Скачать: CL | DM;
Вниз
Подскажите пожалуйста... Найти похожие ветки
← →
Василий Свиридов (2002-01-31 05:28) [0]... компонент для работы с сокетами (TCP/UDP), только чтобы он не тянул за собой пол-VCL. А то нужно маленький сервер написать и не хочется чтобы его минимальный размер начинался с 300-400 кб.
← →
Digitman (2002-01-31 10:21) [1]Использование класса TComponent (ты ж о компонентах-таки речь ведешь ?) "потянет" на ~150кб (модуль Classes). Без Classes эта "халява" никак не обойдется.
TServerSocket и иже с ним "потянут" еще на на ~50кб (модуль ScktComp). Итого "халява от Борланда" под названием TServerSocket "утяжеляет" объектный код до ~300кб ("по-крупному" туда еще войдут System, SysInit, SysUtils, SyncObjs)
"Нарисовать" все это в усеченном варианте на API обойдется тебе, думаю, где-то в ~100 кб даже при использовании консоли. Разница, конечно, есть, но - стоит ли "овчинка выделки" ?
← →
NailS (2002-01-31 11:09) [2]Есть неплохие компоненты ICS
http://overbyte.alexid.fr/frame_index.html
Что-бы не использовался Forms компилишь с директивой NO_FORMS
(хотя могу ошибаться, это подробно описано в заголовке модуля WSocket.pas)
← →
Velocity (2002-01-31 11:32) [3]>Digitman
Намного меньше чем в 100. Натурально, с наворотами и обработкой ошибок (ну не всех конечно, самых дрянных) - около 30 килов. Разумеется в юзесах только Windows и Winsock.
← →
Василий Свиридов (2002-01-31 23:55) [4]Спасибо всем.
← →
Digitman (2002-02-01 15:38) [5]>Velocity
"пустая" консоль в Д5 "весит" 48кб. Проверь сам. Это - system + sysinit
← →
vuk (2002-02-01 20:08) [6]to DigitMan:
ScktComp тянет за собой Forms, а он, в свою очередь, тянет дополнительно еще очень много чего (около 20 модулей). Вот как раз и получаются почти те самые "пол-VCL" и именно из-за него получается такой размер.
То есть
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, scktcomp;
begin
end.
весит около 300 КБ если включен модуль ScktComp и только 41 КБ (видимо у Вас получилось 48 в связи с другими ключами компиляции)если используется только SysUtils.
Что же касается того, что можно использовать для работы с сокетами, то я могу порекомендовать (да и сам использую) Indy.
← →
Иван Шихалев (2002-02-02 19:20) [7]to Digitman
> "пустая" консоль в Д5 "весит" 48кб. Проверь сам.
> Это - system + sysinit
А насколько я помню ~16K
← →
Digitman (2002-02-04 09:13) [8]Приношу извинения. На самом деле, "пустая" консоль в Д5 "весит" 41кб (uses SysUtils) и 16кб (без оного).
ScktComp действительно "тянет" за собой Forms. Чушь конечно, но - факт : Forms нужен в этом модуле ТОЛЬКО ЛИШЬ ДЛЯ ОБРАБОТКИ ИСКЛЮЧЕНИЙ на уровне объекта Application !!!!! И ни для чего более !
← →
drpass (2002-02-04 12:08) [9]Ребята, вот эта прога, я сейчас ее пишу в D6, так вот она занимает 144К со всеми этими модулями... и прекрасно работает. Так что вполне реально уложиться в небольшой файл
uses
Windows,
Messages,
SysUtils,
ScktComp,
Classes,
PSAPI,
TlHelp32;
← →
vuk (2002-02-04 15:49) [10]to Digitman:
>Forms нужен в этом модуле ТОЛЬКО ЛИШЬ ДЛЯ ОБРАБОТКИ ИСКЛЮЧЕНИЙ
>на уровне объекта Application !!!!! И ни для чего более !
Не только для этого. Дело в том, что компоненты из ScktComp работают по асинхронной модели WinSocket. Вся нотификация о происходящем в сокете получается через оконные сообщения.
Для облегчения обработки сообщений в TCustomWinSocket используется механизм создания скрытого окна и связывания его с экземпляром объекта при помощи функции AllocateHWnd из модуля Forms. Подробности - TCustomWinSocket.GetHandle
← →
Digitman (2002-02-04 16:35) [11]>vuk
Верно. Упустил сей момент)
← →
SerB (2002-02-05 08:06) [12]Попробуйте KOL
Страницы: 1 вся ветка
Текущий архив: 2002.04.18;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c