Форум: "Сети";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
ВнизПоиск сервера для TClientSocket Найти похожие ветки
← →
Vaddya (2001-09-06 00:27) [0]Как можно найти запущенный сервер в сети, сделанный на основе TServerSocket, по типу того, как это делают сетевые игры (без указания Address или Host)?
← →
Борис (2001-09-06 09:05) [1]Получаешь список машин в сети, и пробуешь подсоедениться к каждой, если подцепился, значит серевер. Помойму так. С уважением, Борис
← →
SKiwa (2001-09-06 10:53) [2]Более корректно так.
Посылаешь Broadcast на определенный порт
формат запроса и ответа должен быть четко определен.
А в ответе могут быть параметры для TCP.
Для всего этого лучше использовать компоненты Indy
там есть и UDP-клиент и UDP-сервер и возможность посылать Broadcast
Да и TCP лучше брать там же.
← →
SKiwa (2001-09-06 11:07) [3]Если никто не возражает, я расширю вопрос :)
В данный момент работаю над тем-же.
для TIdUDPClient
procedure Broadcast(const AData: string; const APort: integer);
т.е. Сообщение посылается по адресу 255.255.255.255 (см. исходники)
Мне это не нравиться.
Я хочу знать маску подсети, чтобы послать например на 10.1.1.255.
Мне известен один способ получения маски посредством "inetmib1.dll"
для которой есть "C" декларации
например
BOOL SnmpExtensionInit(
DWORD dwTimeZeroReference,
HANDLE *hPollForTrapEvent,
AsnObjectIdentifier *supportedView
);
Так вот просьба, если у кого есть Pascal декларации функций, типов данных, рекордов(структур) и т.д. для "inetmib1.dll"
Не сочтите за наглость, но зачем зря возиться, если уже кто делал. :))
Или альтернативное решение проблемы получения маски.
Буду весьма благодарен.
← →
Vaddya (2001-09-06 23:16) [4]А не проще ли, как сказал Борис, брать список машин в подсети и пробывать подключаться методом тыка?
← →
SKiwa (2001-09-07 11:07) [5]Если рассуждать с точки зрения единственной задачи, которую написал и забыл, то может быть проще, а если с точки зрения закрыть проблему раз и навсегда, для всех последующих задач, то можно поспорить.
Правда спорить желания нет. :)
Мне действительно необходимо то что я говорил, Pascal декларации уже сделал, сегодня постараюсь сделать остальное.
Если потенциальные посетители дадут поработать :)
← →
Anton (2001-09-07 13:29) [6]2 Skiwa:Можно кинуть в меня этими декларациями?
← →
SKiwa (2001-09-07 14:23) [7]Получи,
Только я не тестировал.
Если чего обнаружишь, пошли исправления,
мне до среды следующей недели заниматься этим некогда.
← →
SKiwa (2001-09-10 10:38) [8]Проверенно, работает(на NT). Но на win95 нет. требуется snmpapi.dll
На 98 и т.д. не проверял.
← →
Vaddya (2001-09-17 22:15) [9]Я, вообще-то, задавая вопрос, имел в виду другое. Например, открываем Quake 2, заходим Multiplayer -> Join network server. Выводится список всех доступных серверов, а в консоли в это время пишется: "Pinging broadcast..." и также выводятся сервера, к которым можно подключиться. Так вот, как осуществить этот Pinging broadcast с помощью TClientSocket/TServerSocket (Не Indy)? Желателен кусок кода сюда для всех или лично мне на "мыло".
← →
Stepan (2001-10-28 20:18) [10]Да, у меня точно такая же проблема. как у Vaddya
один в один. И я ненашел на нее ответа в этой дискуссии.
Довайте ее возобновим, т.к. мне тоже необходимо решить эту проблему.
Заранее благодарен.
С уважением, Гавриленко Степан.
← →
SKiwa (2001-10-29 08:53) [11]Мне кажется, я дал достаточно полный ответ см. SKiwa © (06.09.01 10:53).
Придумать можно много решений.
Простейшее - Клиент посылает Broadcast сообщение и в течение некоторого времени принимает ответы от серверов, тем самым формирую их список.
Broadcast("Ау!!!");
While(True) do begin
Str := ReceiveStr;
Strings.Add(Str);
if TimeAut then
Break;
end;
На чем реализовать на Indy или TClientSocket/TServerSocket неважно, я конкретно эту задачу делал на Indy.
А уж как послать BroadCast и принять ответ это вопрос отдельный.
По TClientSocket/TServerSocket можно спросить Digitman, если не ошибаюсь он этот вопрос хорошо знает.
По Indy можно спрашивать меня.
← →
Dust (2001-10-29 12:38) [12]Могу предложить свое решение. Работает ТОЛЬКО в виндюковской сетке.
В WinAPI есть функции Eumo-ов сетей, рабочих групп и хостов. Для локалки этого вполне достаточно. Есть и готовое рещение, но оно стоит $ - так не кину.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c