|
|
|
|
Админ |
Четверг, 27 Сентября 2001, 0:00
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
Задача заключается в следующем: На одной из машин в локальной сети запускается прогамма-сервер, которая переходит в состояние прослушивания определенного порта на предмет запроса соединения. На другой машине запускается программа-клиент, которая должна соедититься с указанной программой-сервером. Клиенту известен номер порта, прослушиваемый сервером, а имя машины (адрес), на которой запущен сервер не известно. Вопрос: как клиенту самому узнать адрес сервера. Предполагаемое решение: клиент должен послать широковещательное сообщение в сеть, которое должне принять сервер и откликнутся. Так вот как это нужно сделать (реализовать). Если кто-нибудь знает другой способ, пожалуйста напишите. Подойдут любые предложения для Delphi, С++.
P.S. Клиент и сервер реализованы с помощью Windows Socket.
|
|
|
|
|
Beerkoff |
Пятница, 28 Сентября 2001, 11:03
|
Администрация
Профиль
Группа: WinCity Team
Сообщений: 895
Регистрация: 04.02.2001
Из: Санкт-Петербург
Пользователь №: 26
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: ASUS Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Я пишу в Дельфи. Здесь не совсем широковещательный запрос должен быть. Скорее клиент должен сначала определить все IP адреса в лок. сети, затем попытаться обратиться к каждому найденному компу и установить соединение с определенным портом. С тем портом, с которым произойдет соединение дальше должна быть запущена процедура "авторизации". Дело в том, что на других компах этот порт тоже может быть открыт, но работать на нем могут другие сервисы. Единственное чего я не знаю, это как получить IP адреса всех компьютеров в сети. Но думаю, что для этого можно обратиться к функции API (сетевой).
|
|
|
|
|
|
Суббота, 26 Января 2002, 11:30
|
Профиль
Группа:
Сообщений:
Регистрация: --
Пользователь №:
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
Предупреждение: (0%)
|
Здравствуйте. Если Вам все-таки еще необходимо найти сервак, то предлагаю следующий способ: - Для этого необходимо использовать компонент TNMUDP на страничке Internet (по-моему так). - В его свойствах небходимо выбрать порты localport - с какого отправлять запрос и remoteport - на какой отправлять. - В свойстве по-моему host надо указать IP-адрес, например 192.168.0.255 - т.е. запрос будет отправлен на все копмы у которых адрес лежит в пределах 192.168.0.0 - 192.168.0.255 (широковещательный запрос). Куда этот компонент воткнуть - решать Вам. Будет ли сервер рассылать периодически запрос в сеть или клиент будет посылать запрос, а потом ждать ответ - все это выбирается в зависимости от задачи. Удачи
|
|
|
|
|
bary3000 |
Понедельник, 03 Июня 2002, 7:54
|
Участник
Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.05.2002
Из: Москва
Пользователь №: 2298
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Допустим клиент и сервер работают в сети ИНТЕРНЕТ, там ваша фишка не прокатит. Для таких вещей нужен сервер с постоянным адресом (напр. server.icq.com), а лучше с именем компа... Да-Да если программа в сети, то проще всего клиенту обритится на сервер по имени (и отчеству)... ---- ВотЬ
|
|
|
|
|
Disa |
Понедельник, 03 Июня 2002, 14:14
|
Участник
Профиль
Группа: Участник
Сообщений: 28
Регистрация: 26.04.2002
Пользователь №: 2038
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Гм, а если не в инете, то либо делать клиентом броадкаст на поиск сервера, чтоб тот ему ответил, либо сервер сам делает широковещательные анонсы через какой-то промежуток времени.
Хотя, во всех цивильных программах такие вещи прописываются вручную.
|
|
|
|
|
|
2 чел. читают эту тему (2 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|