Страница 1 из 2

Работа с большим кол-вом сокетов

Добавлено: 25 ноя 2004, 00:13
Breg
При работе с большим кол-вом сокетов (TClientSocket) наблюдаю глюк осла, а точнее его отказ работать аж до перезагрузки компа.
Подскажите, плиз, что делать.

Добавлено: 29 ноя 2004, 21:14
drmist
класс TClientSocket известен своей глючностью.
Рекомендую поставить Delphi7. там багов меньше.класса TClientSocket там нет, но и не надо.
вместо него я рекомендую использывать winsock2. его в Delphi7, увы, тоже нет, хотя разработчики обещали включить. второй сок придется искать в сети. если не найдешь - напиши. дам.

Добавлено: 11 дек 2004, 02:31
Breg
Спасибо,
Делфю новую ставить пока не спишу,
а винсокс2 сейчас поищу. :)

Иш ты рифмач какой получился из меня. :) ))

Скорее всего таки прийдется Делфи7 ставить...

Добавлено: 16 дек 2004, 17:39
xpymep
Во-первых у сервера (TServerSocket) ThreadsCacheSize должен стоять побольше. Во-вторых и впрямь TClientSocket использует сокеты версии:winsock 1.1, которые отличаются большооой глюкавостью. В-третьих winsock 2 - не лучше :) . В-четвертых, уж лучше работать с TCP/IP портом напрямую, чем через сокеты! Я писал чат (winsock1.1), так вот сервак держал до 10 пользователей, потом падал. Потом написал чат под линукс (используя ихний сокет, можно преобразовать сообщения от winsock1.1) сервак держал 40 пользователей спокойно (правда комп аж пыхтел от количества пользователей) и не упал.... Потом начали падать виндовые клиенты :) . Так что мой совет - НЕ ИСПОЛЬЗОВАТЬ СОКЕТЫ ВООБЩЕ. Правда компоненты TClientSocket и TServerSocket были разработаны для Делфей, а я писал под Borland C++ Builder 6.

Добавлено: 16 дек 2004, 18:25
Breg
xpymep писал(а):Так что мой совет - НЕ ИСПОЛЬЗОВАТЬ СОКЕТЫ ВООБЩЕ.
Если можно, поясни как тогда работать по TCP/IP без сокетов. Или хотя бы ссылочку, где можно это прочитать.

Добавлено: 16 дек 2004, 18:57
Absurd
Потом написал чат под линукс (используя ихний сокет, можно преобразовать сообщения от winsock1.1)
Под Линукс сокеты те же, что и в Winsock2 (socket(),listen(), accept(), connect() etc), поскольку Winsock2 - это подчистую портированные BSD сокеты.

Добавлено: 16 дек 2004, 19:35
DeeJayC
Breg писал(а):
xpymep писал(а):Так что мой совет - НЕ ИСПОЛЬЗОВАТЬ СОКЕТЫ ВООБЩЕ.
Если можно, поясни как тогда работать по TCP/IP без сокетов. Или хотя бы ссылочку, где можно это прочитать.
Поправка - не использовать сокеты, поставляемые с Борландом ВООБЩЕ.

omniORB, собранная под win32 открывает сокетов просто... ну очень
много. Работает - супер.

Добавлено: 17 дек 2004, 10:24
xpymep
Absurd, не знаю... у меня так не пашет, и приходиться делать один кроссплатформенный модуль, через который все работает. По другому никак :) (у мя Mandrake9.0).

Добавлено: 17 дек 2004, 21:31
Breg
xpymep писал(а):Absurd, не знаю... у меня так не пашет, и приходиться делать один кроссплатформенный модуль, через который все работает. По другому никак :) (у мя Mandrake9.0).
Можешь его намылить мне?:wink: Ибо я тоже кроссплатформенной свою прогу хочу сделать (у меня RedHat 9.0). И у меня по ходу дела планы возросли - я хочу не просто чат написать, а такой себе сетевой процессор, выполняющий основные функции по передаче инфы, а всё остальное выполняют плагины. Таким образом создам масштабируемое приложение. :D

Добавлено: 17 дек 2004, 21:33
Breg
DeeJayC писал(а):omniORB, собранная под win32 открывает сокетов просто... ну очень много. Работает - супер.
А под линух можно её собрать?