Подключение к серверу, которого нет

Сеть в Unity3D

Подключение к серверу, которого нет

Сообщение megafanat 03 сен 2010, 11:30

Изучаю Multiplayer Tutorial http://unity3d.com/support/resources/tutorials/iphone-multiplayer-tutorial
Там на начальном этапе запускаются два экземпляра Unity на одном компе. На одном создается сервер, второй подключается как клиент к адресу 127.0.0.1. И вроде как все работает. Состояние игры изменяется синхронно в обоих экземплярах.

После этого я решил немножко переделать этот пример, так, чтобы первый запущенный экземпляр становился сервером, а второй подключался к нему как клиент.Чтобы игра могла решить как себя вести: создавать сервер или подключатся к уже запущенному серверу, она должна знать запущен уже сервер или нет. При этом адрес потенциального сервера известен.

К сожалению мне не удалось найти функцию, позволяющую определить, есть по данному адресу сервер или нет.

Вопрос: Такая функция есть? Или есть какой-то способ определения наличия сервера?

После этого я решил попробовать определять наличие сервера вызовом функции Network.Connect и проверкой возвращаемого значения. К сожалению эта функция у меня всегда возвращала NoError, независимо от того удалось подключится или нет.

Более того, тут всплыла вторая проблема, если вызвать функцию Network.Connect к адресу, по которому сервера нет, то через несколько секунд в консоль выдается сообщение об ошибке "The connection request to 127.0.0.1:25000 failed. Are you sure the server can be connected to?" после чего игра зависает.

Второй вопрос: как бороться с этим зависанием?

Ведь получается, даже если я буду использовать более общепринятую схему с мастер-сервером, где вроде как заранее известно, что сервер по эту адресу есть, то все равно, никто не гарантирует, что сервер внезапно не исчезнет. В этом случае клиент зависнет, что крайне не желательно.
megafanat
UNец
 
Сообщения: 23
Зарегистрирован: 26 май 2010, 12:26

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2