Среда, 24 Апреля 2024, 18:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Как проверить подключение сокета к серверу (GMS Networking)
Как проверить подключение сокета к серверу (GMS Networking)
vampir0305Дата: Суббота, 12 Августа 2017, 10:11 | Сообщение # 1
Unity C# Programmer
Сейчас нет на сайте
Хочу сделать проверку: подключился ли игрок к серверу. Если без проверки подключиться к серверу введя неверный Ip или Port, то программа крашнется. В справке написано что network_connect при неудачном подключении возвращает значение меньше 0. Я делаю так:
Код

ip = get_string("Ip", "127.0.0.1")
Socket = network_create_socket(network_socket_tcp)
connected = network_connect(Socket, ip, 27015)
alarm[0] = room_speed * 5

В Alarm 0
Код
if (connected < 0) {room_restart()}

Если я введу неверный Айпи или просто не создам сервер, то клиент крашнется, комната не перезагрузится.
Даже если сделать так:
Код

ip = get_string("Ip", "127.0.0.1")
Socket = network_create_socket(network_socket_tcp)
connected = network_connect(Socket,  ip, 27015)
if (connected < 0) {room_restart()}


Всё равно клиент крашится. Что делать? Как сделать нормальную проверку, чтобы клиент не крашился.

Добавлено (12 августа 2017, 10:11)
---------------------------------------------
Неужели никто не знает?


Красочная сюжетно-ориентированная игра-головоломка

Сообщение отредактировал vampir0305 - Пятница, 11 Августа 2017, 21:12
OpenGOOДата: Воскресенье, 13 Августа 2017, 08:47 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
У меня ничего не крашится.

Чтобы проверить подключение, в Async Event: Networking пишем

Код
if ds_map_find_value(async_load, "type") == network_type_non_blocking_connect // или network_type_connect
    {
    if ds_map_find_value(async_load, "succeeded") == 0
       {
       // рестарт комнаты
       }
    }


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
vampir0305Дата: Воскресенье, 13 Августа 2017, 20:26 | Сообщение # 3
Unity C# Programmer
Сейчас нет на сайте
Кстати в Create ещё надо добавить:
Код
network_set_config(network_config_connect_timeout, 3000)
network_set_config(network_config_use_non_blocking_socket, 1)


Спасибо! Тема решена.


Красочная сюжетно-ориентированная игра-головоломка
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Как проверить подключение сокета к серверу (GMS Networking)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг