Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.012 c
1-57801
Aleksandr
2002-04-05 16:05
2002.04.18
Почему сепараторы в ToolBar e стали с вертикальной чертой?


3-57614
Daiz13
2002-03-26 15:58
2002.04.18
Передача параметров для Select в хранимую процедуру


1-57724
kjj
2002-04-08 10:09
2002.04.18
Как отсортировать массив?


1-57665
VID
2002-04-03 23:02
2002.04.18
Чтение значения переменной, созданной другой программой


1-57732
LazorenkoX
2002-04-04 21:58
2002.04.18
Консоль вопрос 1