Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Вниз

Подскажите пожалуйста... 


Василий Свиридов   (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




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.028 c
1-57774           lipskiy               2002-04-03 00:35  2002.04.18  
TThread: как вызвать его метод из основного потока и не ждать его


4-57915           ctapik-net            2002-02-14 15:58  2002.04.18  
Определениие списка компьютеров в сети.


3-57635           yuricom               2002-03-28 08:06  2002.04.18  
Справочники, как определить свободна ли запись?


1-57801           Aleksandr             2002-04-05 16:05  2002.04.18  
Почему сепараторы в ToolBar e стали с вертикальной чертой?


1-57771           inko                  2002-04-05 18:57  2002.04.18  
Как программно зажать клавишу Shift и держать?