最近做个项目遇到个问题,请教下各位?
项目功能是采集数据,前端大概有100个采集点,采集设备主动发送数据包,每十五分钟一个心跳包,再十五分钟一个数据包,也就是说服务器半小时读取一次数据。服务器现有三个端口,不排除以后增加的可能性。我在服务器端开启多个线程接收数据包,我想针对每一个采集设备开一个线程,非一个数据包一个线程,我写了段代码,不知道可对,麻烦帮我看看
线程启动,args用来保存端口号,默认采用8001

//处理端口号冲突
if (args.length <  1 ) {
ss = new ServerSocket(8001);
} else {
ss = new ServerSocket(Integer.parseInt(args[0]));
}
boolean bRunning = true;
while(bRunning){
Socket s= ss.accept();
new Thread(new serverStart(s)).start();
}
线程启动: private Socket s = null;
InputStream ips;
OutputStream ops;
private volatile boolean running = true; 
    public serverStart(Socket s) throws IOException {
     this.s = s;  
     ips = s.getInputStream();  
     ops = s.getOutputStream();
}
    
    public void run(){  
        while(running){  
            try {  
                Message m = read();  
                System.out.println("收到信息");  
            } catch (Exception e) {  
                e.printStackTrace();  
            }   
        }  
        try {  
            if(s!=null)s.close();  
        } catch (IOException e) {  
        }  
    }  多线程服务器socketjava数据采集