わかりました、単純なチャット サーバーとクライアントを作成しようとしています。このプログラムはチャット サーバーです。実行中のスレッドが 2 つあります。最初のスレッドはすべてのクライアントを処理し、ServerSocket を使用して各新しいクライアントを新しいソケットにバインドし、2 番目のスレッドはユーザーが接続されたクライアントにメッセージを送信できるようにします。ただし、このスレッド内からユーザー入力を取得することはできません! ステートメント「String inputvar = br.readLine()」は実行されません! 私は何を間違っていますか?
public void relay() throws IOException
{
new Thread(new Runnable()
{
@Override
public void run()
{
try{
try
{
while (true)
{
Socket socket2 = null;
Socket socket1 = socketmethod(socket2,0);
System.out.println(socket1);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (socket1 != null)
{
PrintWriter outputriver = new PrintWriter(socket.getOutputStream(),true);
boolean cfd = true;
while(cfd==true)
{
System.out.println("this worked");
System.out.print("Message: ");
String inputvar = br.readLine();
System.out.println("this worked2");
if (inputvar.equals("disconnect_now"))
{
cfd = false;
}
outputriver.println("Unknown User: " + inputvar);
}
}
}
}
finally
{
System.out.println("error 1");
}
}
catch (IOException e)
{
System.out.println("Unexpected error: IOException in thread2");
}
}
}).start();