Я работаю над игровым проектом «Морской бой», в который играют 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
Спасибозаранее!