클라이언트가 5 초 최상의 서버를 확인하고 항상 최상의 서버를 연결하는 간단한 서버 클라이언트 프로그램을 실행하고 싶습니다. 그래서 다음 코드를 썼지 만 stackoverflow 오류가 발생합니다.두 스레드 공유 정적 변수
public static void main(String[] args) throws IOException, InterruptedException {
RTT best = null;
BestServer bestserver = new BestServer(best);
Socket clientSocket = new Socket(bestserver.bestserver.ip, 6789);
System.out.println("I connect best server");
}
public class BestServer implements Runnable{
static RTT bestserver;
public BestServer(RTT best) throws InterruptedException{
bestserver = best;
findBest();
}
public static void findBest() throws InterruptedException{
Thread t = new Thread(new BestServer(bestserver));
t.start();
t.sleep(5000);
}
public void run(){
//..
}
'while (true)'huh? –
클라이언트 또는 서버입니까? 서버 인 경우 ServerSocket 클래스를 살펴볼 수 있습니다. http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html – Nathan
아니요 클라이언트입니다. 클라이언트는 항상 rtt의 측면에서 최상의 서버를 연결하고 그는 각 5 초 bestserver를 확인합니다 – user1914367