我想在同一个文件中创建一个java服务器和客户端...因为这是我的项目结构
服务器--->客户/服务器----> CLIENT
SERVER和CLIENT部分的编码非常简单,但是在为CLIENT / SERVER部件创建时遇到问题。我的代码只能运行CLIENT部分而不能启动SERVER部分。因为我的线程是run()代码。
package com.main.datadistributor;
import java.io.IOException;
import java.net.ServerSocket;
public class Slave {
public static void main(String args[]) throws IOException{
Config cfg = new Config("Slave");
String MasterServerIP = cfg.getProperty("MasterServerIP");
String MasterServerPort = cfg.getProperty("MasterServerPort");
String SlaveServerPort = cfg.getProperty("SlaveServerPort");
Client client = new Client(MasterServerIP,Integer.parseInt(MasterServerPort),"SLAVEONE");
client.run();
int numClient = 0;
ServerSocket listener = new ServerSocket(Integer.parseInt(SlaveServerPort));
System.out.println("Server starts running");
try{
while(true){
new Server(listener.accept(), numClient++, Integer.parseInt(SlaveServerPort), "SLAVESERVER").start();
}
} finally {
listener.close();
}
}
}
从上面的代码我有问题只执行client.run()和代码只是停在那里而不继续在下面的尝试部分执行新的服务器
答案 0 :(得分:2)
如果Client
子类Thread
,那么您需要致电start()
,而不是run()
。如果它实现了Runnable
,那么你需要实例化Thread
来执行它并调用线程的start()
方法。
答案 1 :(得分:1)
不知道Client
是什么,或者看到它的代码限制了我们提供帮助的能力。如果它有run()
方法,则可以实现Runnable
,因此您可以直接调用new Thread(client).start()
而不是直接调用其run方法。