Итак, для проекта я делаю небольшой одноранговый клиент с двумя людьми, использующий Java в среде NetBeans.Клиент чата - сокет и серверный сокет одновременно
У меня вопрос не совсем о коде, а о структуре и о том, как ее реализовать.
То, что я хочу сделать, это есть клиент с открытым и имеют ServerSocket
прослушивания любых соединений, которые пытаются быть сделаны из другого клиента, используя Socket
(этот другой клиент тоже должен иметь ServerSocket
) Так идея что оба клиента имеют возможность принимать соединение после открытия клиента и иметь возможность попробовать и установить соединение.
В любом случае, проблема заключается в том, что ServerSocket.Accept();
блоки (правильная терминология?) Программа, как только она вызывается до окончания тайм-аута. Я хочу, чтобы ServerSocket
просто прослушивал в фоновом режиме любые входящие соединения и подключал их, если это так, без полного отключения функции программы (то есть, пользователь мог инициировать подключение самостоятельно), пока это происходит? Для этого мне нужно создать отдельный поток для ServerSocket
, который был убит после того, как соединение было выполнено?
Также, как только соединение было выполнено, как мне заставить программу периодически проверять входной поток Socket
, чтобы узнать, есть ли входящие сообщения от другого клиента?
Есть ли способ, которым я могу достичь этого в одном потоке? (Я еще не изучал нити)
Прошу прощения, если это немного шире.
Большое спасибо!
Не бойтесь использовать несколько потоков. Как только вы сделаете что-то с Swing или AWT, у вас будет много потоков. Так что не «убегайте» от потоков - попробуйте «приручить» их ... – mschenk74
Можете ли вы указать мне куда-нибудь, что объясняет темы? Я думаю, что это лучший способ сделать то, что я хочу здесь. – Jackles
Учебники, которые я использовал для обучения в 1997 году, больше не являются онлайн. Мне придется снова искать в Интернете. Страницы Angelika Langer, а также те, что Ларс Фогель - хорошее начало для поиска хорошей информации и учебных материалов, связанных с java. – mschenk74