자, 간단한 채팅 서버 및 클라이언트를 만들려고합니다. 이 프로그램은 채팅 서버입니다. 두 개의 스레드가 실행 중입니다. 첫 번째 스레드는 모든 클라이언트를 처리하고 ServerSocket을 사용하여 각각의 새 클라이언트를 새 소켓에 바인딩합니다. 두 번째 스레드는 이제 사용자가 연결된 클라이언트에 메시지를 보낼 수있게합니다. 그러나이 스레드 내에서 사용자 입력을 얻을 수는 없습니다. "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();
들여 쓰기 공간을 조금 줄이십니까? 나는 동의한다. 요즘는 와이드 스크린이 넓다. 하지만 SO의 콘텐츠 영역이 아니며 가로 스크롤이 번거 롭습니다. –