System.inを入手したとしましょう
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
result = br.readLine();
while (!result.isEmpty()) {
if (result.equalsIgnoreCase("exit")) {
userStr="exit";
System.exit(0);
} else if (result.equalsIgnoreCase("list")) {
userStr="list";
} else if (result.equalsIgnoreCase("kill")) {
userStr="kill";
} else if (result.equalsIgnoreCase("help")) {
userStr="help";
}
と
ServerSocket socketListener = new ServerSocket(port);
while (true) {
Socket client = socketListener.accept();
new ServerThread(client,userStr); //pass userStr to Thread
}
「コンソールコマンドを待って」アクティブなスレッドに渡す方法がわかりません。クライアントをaccept()して、スレッドに渡す必要があります。たとえば、サーバーコンソールにコマンドを入力した場合。「killUsername」(ユーザーの切断)または「list」(ユーザー名のリスト)サーバーはスレッドにコマンドを渡す必要があります。
p / sサーバーの管理、コンソールコマンドの入力による管理の実装が必要です。