下面是我将在本地主机上生成服务器的代码。 但是,我想在端口5000,6000,7000上运行3个服务器代码实例。 我可以考虑创建3个.java文件,每个文件使用不同的端口号进行硬编码。 但有没有更好的方法在localhost上生成3个服务器实例而不删除拷贝粘贴3个文件?
public void startServer() {
try {
ServerSocket welcomeSocket = new ServerSocket(5000);
while (true) {
// Create the Client Socket
Socket clientSocket = welcomeSocket.accept();
ObjectInputStream inFromClient = new ObjectInputStream(clientSocket.getInputStream());
Message m = (Message) inFromClient.readObject();
System.out.println("---- hello: my message is: " + m.name);
}
} catch (Exception e) {
System.err.println("Server Error: " + e.getMessage());
System.err.println("Localized: " + e.getLocalizedMessage());
System.err.println("Stack Trace: " + e.getStackTrace());
System.err.println("To String: " + e.toString());
}
}
答案 0 :(得分:1)
你可以这样做:
public void startServer(int port) {
try {
ServerSocket welcomeSocket = new ServerSocket(port);
while (true) {
// Create the Client Socket
Socket clientSocket = welcomeSocket.accept();
ObjectInputStream inFromClient = new ObjectInputStream(clientSocket.getInputStream());
Message m = (Message) inFromClient.readObject();
System.out.println("---- hello: my message is: " + m.name);
}
} catch (Exception e) {
System.err.println("Server Error: " + e.getMessage());
System.err.println("Localized: " + e.getLocalizedMessage());
System.err.println("Stack Trace: " + e.getStackTrace());
System.err.println("To String: " + e.toString());
}
}
现在,请致电:
startServer(5000);
startServer(6000);
startServer(7000);
或者,甚至更好:使用循环启动服务器三次。