Способ передачи данных по локальной сети одновременно нескольким пользователям - PullRequest
0 голосов
/ 02 декабря 2018

Я работаю над игровым проектом «Морской бой», в который играют 2 игрока на 2 разных машинах, общаясь по локальной сети, используя архитектуру клиент-сервер.Я хочу, чтобы сервер обрабатывал игровую логику, а клиент обрабатывал игровой интерфейс.

Моя проблема связана с передачей данных между сервером и двумя клиентами.Прямо сейчас сервер может передавать данные двум клиентам, но один клиент получает данные позже, чем другой (клиент № 1 сначала получает «2/2 Игроки подключены», затем клиент № 2 получает его).У меня что-то вроде этого:

foreach (Socket client in clientSockets) {
        string msg = "2/2 Players Connected";
        client.Send(Encoding.ASCII.GetBytes(msg));
}

Я также наткнулся на шаблон Observer и попытался его использовать.Но, насколько я понимаю, метод Notify() все еще использует оператор foreach.

Я также подумал об использовании 2 очередей для 2 игроков, что может несколько смягчить проблему.

Так что мойвопросы:

  • Существуют ли другие способы передачи данных двум игрокам одновременно?
  • Также уточните некоторые вещи, которые я неправильно понимаю: D

Спасибозаранее!

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