Нет проблем иметь несколько подключенных сокетов в одной программе, и вам не нужно возиться с многопоточностью. Просто продолжайте открывать соединения, как вы привыкли. Если все ваши клиенты подключаются к одному и тому же прослушивателю, просто не закрывайте прослушиватель после accept()
- он продолжит прослушивать больше входящих подключений.
Используйте select()
или poll()
для проверки входящих данных на всех открытых сокетах. Не забудьте включить сокет прослушивания в список дескрипторов для select()
- входящее соединение является событием, select()
обнаруживает.
Это действительно очень просто. Нет ракетостроения.