⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverimpl.java

📁 springGather 在JAVA环境开发的电信运营支持系统
💻 JAVA
字号:
package org.com.gather;

import java.net.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import org.com.gather.exception.*;

public class ServerImpl implements Server{
	private Properties pro = null;
	private Log log = null;
	private BackUp back = null;
	private DB db = null;

	public ServerImpl(Properties pro){
		this.pro = pro;
	}

	public void start(){
		try{
			ServerSocket serverSocket = new ServerSocket(new Integer(pro.getProperty("port")).intValue());
			//通过多线程,实现时刻监听客户端
			while(true){
				Socket socket = serverSocket.accept();
				Thread t = new ServerThread(socket,db,log,back);
				t.start();
			}
		}catch(Exception e){
			e.printStackTrace();
		}	
	}

	public void setLog(Log log){
		this.log = log;
	}

	public void setBackUp(BackUp back){
		this.back = back;
	}

	public void setTestDB(DB db){
		this.db = db;
	}
}

class ServerThread extends Thread{
	private Socket socket = null;
	private DB db = null;
	private Log log = null;
	private BackUp back = null;
	private InputStream is = null;
	private ObjectInputStream ois = null;
	private Collection col = null;

	public ServerThread(Socket socket,DB db,Log log,BackUp back){
		this.socket = socket;
		this.db = db;
		this.log = log;
		this.back = back;
	}
	
	public void run(){
			System.out.println("服务器正在接收数据...");
			try{
				is = socket.getInputStream();
				log.writeDebug("成功获得输入流;");
			}catch(IOException e){
				e.printStackTrace();
				log.writeError("成功获得输入流;");
			}
			try{
				ois = new ObjectInputStream(is);
			}catch(IOException e){
				log.writeError("包装对象流出异常;");
			}
			
			//从客户端接收到数据
			try{
				col = (Collection)ois.readObject();
				Collection back_Collection = back.load();
				if(!back_Collection.isEmpty()){
					col.addAll(back_Collection);
					back.clear();
				}
				try{
					db.storeToDB(col);
				}catch(SQLException e){
					log.writeError("获取连接异常!");
					back.storeForEmpty(col);
					log.writeInfo("成功把数据备份到serverback;");
				}catch(ClassNotFoundException e){
					log.writeError(e.getMessage());
				}catch(DBException e){
					log.writeError("自定义异常被触发;");
				}	
			}catch(IOException e){
				e.printStackTrace();
				log.writeError("IO异常 ;");
			}catch(ClassNotFoundException e){
				e.printStackTrace();
				log.writeError("找不到类 ;");
			}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -