Название: Поиск сервера Отправлено: mcrads от Февраль 11, 2010, 10:04 Доброго времени суток.
Почитал хелпы к Qt, почитал форум и все равно не понял как сделать такую ерунду как поиск сервера. То есть задача такова - нам неизвестен IP сервера. неизвестно какой адрес прописать в QTcpSocket::connectToHost(hostName, port, openMode) => hostName = ? Как быть в такой ситуации? Вообще задача такова - пишу игрушку, нужно сделать поиск серва по локалке. Был вариант перебирать сервы от 0.0.0.0 до 255.255.255.255 но мне кажется это не катит. Название: Re: Поиск сервера Отправлено: Amigo_sa от Февраль 11, 2010, 10:32 Пербирать все сервы - это состариться можно в ожидании :) Проще отправить пакет на broadcast-адресс, предварительно его рассчитав, тот кто откликнется - тот и сервак.
Только нужно быть уверенным, что в сети не режутся рассылки. Название: Re: Поиск сервера Отправлено: mcrads от Февраль 11, 2010, 10:54 как это можно реализовать тогда?
QTcpSocket socket; socket.connectToHost(QHostAddress::Broadcast, 500); socket << data ?? и? так? а дальше? Название: Re: Поиск сервера Отправлено: mcrads от Февраль 11, 2010, 11:30 опять пересмотрел документацию и еще больше запутался. да, Бродкаст это идея - но как все же реализовать?
Название: Re: Поиск сервера Отправлено: Amigo_sa от Февраль 11, 2010, 11:40 Открыть TCP сокет на бродкастовый адрес нельзя. Это же не конкретный комп. Для рассылки нада пользоваться протколом UDP.
Название: Re: Поиск сервера Отправлено: mcrads от Февраль 11, 2010, 11:52 в таком случае мы ведь можем по UDP вывесить свой IP для всех и данные о серве. а остальные уже по получении будут по Tcp коннектиться по полученному IP? так может получиться?
Название: Re: Поиск сервера Отправлено: Amigo_sa от Февраль 11, 2010, 12:35 Цитировать qint64 QUdpSocket::readDatagram ( char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0 ) Адреса клиентов и серверов даже не надо запихивать в пакет, они нам приходят в заголоках.The sender's host address and port is stored in *address and *port (unless the pointers are 0). Название: Re: Поиск сервера Отправлено: mcrads от Февраль 11, 2010, 14:16 Супер, спасибо! попробую!
Название: Re: Поиск сервера Отправлено: mcrads от Февраль 13, 2010, 15:52 Отлично, у меня все получилось =)
|