Сокеты в C - действительно интересная вещь для работы.
Сначала вам нужно придумать подходящий протокол , и вы должны внедрить его в менеджере клиентов.
Чтобы иметь несколько клиентов, необходимо иметь несколько сокетов, по одному для каждого клиента и один "основной" сокет для listen для соединений.
Основной сокет создается черезиспользование socket()
, а затем вы должны использовать accept()
для прослушивания соединений.При подключении клиента к вашему сокету accept()
вернет новый сокет, зарезервированный для связи с этим клиентом.
Сокеты действуют как файлы, поэтому элементы сокетов используются как дескрипторы файлов.Чтобы убедиться, что у вас есть хорошая петля, вы должны использовать select()
, предоставляя ей все свои сокеты, чтобы знать, когда:
- У вас есть новое соединение, ожидающее вашего основного сокета,
- Выможете написать клиенту,
- У вас есть что почитать у клиента.
От того, как реализовать вашу игру с этим, зависит, в чем ваша игра и как онаplay.
Я предлагаю вам реализовать очередь действий, буферизируемых, когда клиент что-то делает, и разрешать их как можно скорее.Используйте тайм-аут select()
, чтобы помочь вам в этом.