打包之后,获取端口号会和他人冲突,所以我们要设置端口(port)可以改变
我们可以将要用到的端口号存在文件中,启动时将文件内容读取到缓存中,之后使用,这样如果要改变端口号可以直接修改文件
改变的代码部分:
package server;
import java.io.FileReader;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;
public class ServerFileReader {//在系统启动时,读取文件server.properties中的内容
private static HashMap<String,String> portMap=new HashMap<>();
static {
try {
Properties properties=new Properties();
properties.load(new FileReader("src//server.properties"));
Enumeration enumeration= properties.propertyNames();
while(enumeration.hasMoreElements()){
String key=(String)enumeration.nextElement();
String value=properties.getProperty(key);
portMap.put(key,value);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getPortMap(String key){
return portMap.get(key);
}
}
package server;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public void startServer(){
try {
System.out.println("====启动服务====");
String port=ServerFileReader.getPortMap("port");
//自己创建服务
ServerSocket server=new ServerSocket(Integer.parseInt(port));
while (true){
//等待某一个客户端过来连接
Socket socket=server.accept();//要想同时很多用户访问,可以用多线程来控制
new ServerHandler(socket).start();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
其余代码和(4)一样