Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование работы сервера с множеством клиентов

504
26 мая 2005 года
lexluther
71 / / 26.10.2004
Всем привет,

Подскажите, пожалуйста, принцип решения следующих задач,-

У меня есть сетевой TCP/IP сервер и куча TCP/IP клиентов. Мне нужно обеспечить перманентное взаимодействие между клиентами и сервером, при этом клиенты обращаются к серверу беспорядочно.

Я, допустим, могу решить это за счет либо выделения каждому соединению своего порта, либо за счет создания одного управляющего соединения, а другого общего (через какое идут данные с разных сокетов).

Не хочу ошибиться, и поэтому хотелось бы знать общепринятые способы решения аналогичных проблем (только для мультиплатформенного кода с BSDSockets/WinSocks, без компонентов и иже с ними).

PS: Также подскажите пожалуйста возможна ли мешанина байтов при одновременной посылке данных с разных клиентов на один и тот же сокет, или там действует система очереди.

Заранее спасибо за любой ответ.

С Уважением,
Иванов Артем,
cubereality.com
2
27 мая 2005 года
squirL
5.6K / / 13.08.2003
для начала рекомендовал бы ознакомиться с
теорией. все проблемы, как то: возможное перемешивание байт, различение разных клиентов беред на себя стек TCP/IP. вам об этом заботится не надо. рекомендую найти книгу Снейдера "Эффективное программирование TCP/IP" и почитать.
2.3K
27 мая 2005 года
ART-CODE
134 / / 15.11.2004
Хорошую книжку советуют! (сам рекомендую)
Но насчет мультиплатформенности и
безкомпонентности -это не так однозначно...
Есть вариант создать основной
код приложения, а для Windows скомпилить в
Builder , а для linux скомпилить в Kylix
вот и вся мультиплатформенность. При правльной
организации кода можно легко и быстро
отпортировать из одной среды в другую.

Все клиенты могут успешно работать с одним принимающим портом одновременно - проблем не будет. (Он всего-лишь диспетчер, принимающий Connect, а реальная передача данных идет с динамически назначаемых портов.
2
27 мая 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by ART-CODE
Хорошую книжку советуют! (сам рекомендую)
Но насчет мультиплатформенности и
безкомпонентности -это не так однозначно...
Есть вариант создать основной
код приложения, а для Windows скомпилить в
Builder , а для linux скомпилить в Kylix
вот и вся мультиплатформенность. При правльной
организации кода можно легко и быстро
отпортировать из одной среды в другую.


ну Снейдер между прочим в книге использует кроссплатформенный каркас клиентов и серверов. я его файлы, идущие с книгой использую в реальных прогах :)

Цитата:
Originally posted by ART-CODE

Все клиенты могут успешно работать с одним принимающим портом одновременно - проблем не будет. (Он всего-лишь диспетчер, принимающий Connect, а реальная передача данных идет с динамически назначаемых портов.


неправда. на стороне сервера обмен идет по одному порту.

2.3K
27 мая 2005 года
ART-CODE
134 / / 15.11.2004
неправда. на стороне сервера обмен идет по одному порту.


Согласен, я не корректно выразился. (за исключением случая перенаправления клиента
на другой порт).

Cоединение характеризуется 4 параметрами.

1 - Ip адрес Сервера - статический (условно)
2 - Port Сервера - статический
3 - Ip адрес клиента - статический или динамический
4 - Port клиента - динамический (практически всегда)

Сопоставляя все эти данные всегда есть
возможность отличить одно соединение от другого.
2
27 мая 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by ART-CODE
неправда. на стороне сервера обмен идет по одному порту.


Согласен, я не корректно выразился. (за исключением случая перенаправления клиента
на другой порт).

Cоединение характеризуется 4 параметрами.

1 - Ip адрес Сервера - статический (условно)
2 - Port Сервера - статический
3 - Ip адрес клиента - статический или динамический
4 - Port клиента - динамический (практически всегда)

Сопоставляя все эти данные всегда есть
возможность отличить одно соединение от другого.


вот теперь согласен. рад, что мы пришли к взаимопониманию

246
30 мая 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by squirL
ну Снейдер между прочим в книге использует кроссплатформенный каркас клиентов и серверов. я его файлы, идущие с книгой использую в реальных прогах :)


А нельзя-ли, пока Я до магазина не добрался, примеры к книжке выложить в Инет?

2.3K
30 мая 2005 года
ART-CODE
134 / / 15.11.2004
загляни сюда
246
31 мая 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by ART-CODE
загляни сюда


Гляжу. Скачать ничего не получается.

2
31 мая 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by GIZMO
Гляжу. Скачать ничего не получается.

кинь в приват мыло. как попаду домой, скину тебе архив с исходниками.

246
31 мая 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by squirL
кинь в приват мыло. как попаду домой, скину тебе архив с исходниками.


Отбой, нашел. Спасибо за беспокойство.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог