Мне нужна помощь, чтобы придумать дизайн, где клиенты подключаются и общаются со всеми другими клиентами. Я думаю, что каждому клиенту одновременно потребуется ServerSocket для прослушивания входящих соединений от других клиентов и Socket для инициирования соединений с другими клиентами.
Я тестирую на localhost, поэтому, если я буду использовать номера портов для отслеживания соединений, я столкнусь с таким сценарием:
Socket A (OS assigned port: a) initiates connection with ServerSocket B (known port: 2222)
Both clients record that connection (a, 2222) is made
Socket B (OS assigned port: b) initiates connection with ServerSocket A (known port: 1111)
Both clients record that connection (b, 1111) is made
У нас должно быть 1 соединение на пару клиентов, поэтому вышеприведенное является расточительным. Вот почему я подумываю о настройке локальных портов самостоятельно: сценарий изменится на соединения (1111,2222) и (2222,1111), и, поскольку второй остается тем же, он не сохраняется.
Это звучит разумно?