打包之后,获取端口号会和他人冲突,所以我们要设置端口(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)一样
