Java에서 쓰레드가 어떻게 동작하는지 알았을 때, 나는 틀렸어.이 서버가 클라이언트를 청취하고 동시에 콘솔에 텍스트를 입력 할 수있게하고 싶다.자바의 쓰레드와 서버
public class MultiThreadChatServerSync implements Runnable{
private static ServerSocket serverSocket = null;
private static Socket clientSocket = null;
private static final int maxClientsCount = 10;
private static final clientThread[] threads = new clientThread[maxClientsCount];
public static void main(String args[]) {
int portNumber = 2222;
if (args.length < 1) {
System.out.println("Usage<portNumber>\n");
} else {
portNumber = Integer.valueOf(args[0]).intValue();
}
try {
serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
System.out.println(e);
}
//I thought this was the answer and it would run in the backround
(new Thread(new MultiThreadChatServerSync())).start();
}
public void run() {
while (true) {
try {
clientSocket = serverSocket.accept();
int i = 0;
for (i = 0; i < maxClientsCount; i++) {
if (threads[i] == null) {
(threads[i] = new clientThread(clientSocket, threads)).start();
break;
}
}
if (i == maxClientsCount) {
PrintStream os = new PrintStream(clientSocket.getOutputStream());
os.println("Server too busy. Try later.");
os.close();
clientSocket.close();
}
} catch (IOException e) {
System.out.println(e);
}
}
}
}
Please. 나는 무엇이 있습니까?
질문을 반복하지 마십시오. 답을 얻는 데 도움이되지 않습니다. 도움이되는 답을 얻지 못하면 원래 질문을 편집하여 필요한 내용을 명확히하십시오. –
@Don Roby. 사과드립니다. 다음 번에 그렇게 할 것입니다. 내가 무엇을 놓치고 있는지 알지 못하고 그것을 얻기 위해 열심히 노력했지만 그럴 수는 없습니다. – user2893681