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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Работа с большим кол-вом сокетов

Absurd » 20 дек 2004, 09:07

Absurd, не знаю... у меня так не пашет, и приходиться делать один кроссплатформенный модуль, через который все работает. По другому никак (у мя Mandrake9.0).
По - моему единственное различие - в *nix системах надо использовать <sys/socket.h>, а под виндой - <winsock2.h>.
И еще в юниксах хендлы сокетов можно передавать в read() / write(), а в виндах это делать нельзя.

Вот кроссплатформенный сокет-модуль

#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
#endif

Breg » 19 дек 2004, 01:16

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

Breg » 17 дек 2004, 21:33

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

Breg » 17 дек 2004, 21:31

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

xpymep » 17 дек 2004, 10:24

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

DeeJayC » 16 дек 2004, 19:35

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

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

Absurd » 16 дек 2004, 18:57

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

Breg » 16 дек 2004, 18:25

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

xpymep » 16 дек 2004, 17:39

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

Breg » 11 дек 2004, 02:31

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

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

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

Вернуться к началу