0
我想运行一个简单的服务器客户端程序,其中客户端检查每个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