Многопользовательская игра - PullRequest
0 голосов
/ 29 марта 2010

Используя XNA ИЛИ только обычное приложение на c # win, что будет лучшим способом создать функцию, которая позволяет отправлять текстовые сообщения от моего друга через Интернет?

Я не знаю, имеет ли это значение или нет, но теперь у меня есть 3 мобильных широкополосных интернета ... так что это похоже на ... Беспроводной интернет, это имеет значение?

Ответы [ 3 ]

6 голосов
/ 29 марта 2010

Довольно сложно "связаться со своим другом через Интернет", вне зависимости от структуры.

Чтобы получить доступ к чьему-либо ПК, необходимо знать IP-адрес конечного ПК. Если ПК находится за маршрутизатором, он, скорее всего, имеет частный IP-адрес, поэтому недоступен, если маршрутизатор не реализует какую-либо форму переадресации (в этом случае данный порт TCP перенаправляется на внутренний IP-адрес данного ПК). Затем необходимо настроить маршрутизатор на использование DDNS, чтобы ваш код мог попасть по IP-адресу маршрутизатора.

Итак, это возможно (используя классы, упомянутые @Bob), но не для слабонервных.

Способ, которым профессиональные программы (например, клиенты чата) делают это, имеет центральный сервер, который передает сообщения. Код, запущенный на вашем ПК и на компьютере вашего друга, отправляет сообщения на этот сервер, а не напрямую друг другу, поэтому не нужно знать IP-адрес другого. Но для того, чтобы идти по этому пути, требуется хостинг для серверного ПК.

1 голос
/ 30 апреля 2012

Я согласен с Тиморес, вы не можете напрямую связаться с устройством вашего друга, и вам понадобится сервер для этого. Сокеты - это не то, что операторы разрешают, когда вы подключены через 3G, а не через WIFI.
Вы можете попробовать, если вам нравится решение Skiller SDK: www.skiller-games.com (полное раскрытие: я из Skiller), у нас распределенные серверы, поэтому вам не нужно ничего размещать и Помимо других инструментов вы можете использовать встроенный социальный слой, где ваши пользователи смогут составить список друзей и отправлять сообщения друг другу.
Надеюсь, это поможет.

1 голос
/ 29 марта 2010

Вы можете посмотреть класс Socket или более простые TcpClient и TcpListener . XNA или Winforms не должны иметь значения. Использование XNA на платформе Windows дает вам доступ ко всей платформе .NET, включая сетевые аспекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...