![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько програм на одном порту [D6, Win95/98, Win2k, WinXP]
MaximP © (2005-04-18 12:13:00)Уважаемые мастера подскажите как разрулить ситуацию.
Дело в следующем есть несколько программ-серверов на одной машине и используют один порт, дак вот проблемма в том что как раз один порт и не используют по причине того что машина ругается что возможно использование протокола/сетевого адрес/порта только одним приложением. Использую ServerSocket1. Подскажите в каком направлении рыть.
MaximP (2005-04-20 13:08:00) [1]
> atruhin © (20.04.05 09:11) [9]
Понял, буду разбираться!
atruhin (2005-04-20 09:11:00) [2]UDP
MaximP (2005-04-19 19:17:00) [3]
> atruhin © (19.04.05 07:36) [7]
Заинтересовал 1 выриант, вот только как послать широковещательное сообщение?
atruhin (2005-04-19 07:36:00) [4]1. Сервер запускается посылает широковещательное сообщение о том что он запущен, остальные программы, приняв рассылку, коннектятся к нему (так многие игрушки работают).
2. Любая из версий программы обеспечивает транспортный канал для других. Вторая копия при запуске проверяет, что канал создан, и пересылает свои пакеты используя любой тип межпроцессорного взаимодействия.
3. Ну и пусть стучаться к серверу, по таймеру скажем раз в 10 сек., сеть этим не нагрузишь.
MaximP (2005-04-18 14:35:00) [5]
> atruhin © (18.04.05 14:14) [5]
как вариант допускаю, но тогда каждый клиент должен постоянно стучаться к серверу, т.к. программа для просмотра подключений может быть и не запущена вовсе. И поэтому я и сделал так как сделал, чтобы программа для прсмотра подключений сама искала, и не вышло. Посему задачу перед собой поставил такую, каким то образом прослушивать порт и реагировать на это, скорее действительно использовать вариант перемены мест сервера и клиента, но активизируется клиент только при событии на порту, вот только как реализовать. Может есть другие варианты. С промежуточным сервером не подходит.
atruhin (2005-04-18 14:14:00) [6]Ну дак поменяй ClientSocket и ServerSocket местами
MaximP (2005-04-18 12:44:00) [7]
> dmitry501 © (18.04.05 12:22) [2]
Менять порты не выход.
Опишу ситуацию чуть подробней, может посоветуете другой выход.
Есть сеть локальная, пользователи запускают программы расположеные на сетевом диске. мне нужно знать какие программы и кем запущены.
Что сделал: разбил задачу на два этапа
1)(Уже сделал) определил имена машин, пользователей, ip- адреса всех кто в настоящее время подключен к сети. Сделал.
2)(сделано в тестовом варианте в котором и наткнулся на проблему)в каждую из програм запускаемых пользователями разместил компонент ServerSocket в задачу которого и входит отвечать клиенту ClientSocket расположенный в программе которая и отражает все машины с приложениями в которые интегрирован модуль сервера. И всё бы хорошо если бы пользователи не запускали по несколько программ, а также по несколько экземпляров одной программы, а им это нужно.
Конечно это извращение плодить столько серверов, но как поступить?
Alex Konshin (2005-04-18 12:32:00) [8]Если говорит, что используешь, значит, используешь.
Как эти программы работают? Кто их запускает? Когда и как они завершаются? Возможен ли запуск нескольких копий?
dmitry501 (2005-04-18 12:22:00) [9]Менять используемые порты.
Anatoly Podgoretsky (2005-04-18 12:20:00) [10]В сторону коммутатора.