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

📄 servermainclass.java

📁 这是一个很好的考试系统的源码
💻 JAVA
字号:
package com.tarena.exam.server;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;

import com.tarena.exam.dao.PaperDao;
import com.tarena.exam.dao.PaperDaoFromFile;
import com.tarena.exam.dao.ScoreDao;
import com.tarena.exam.dao.StudentDao;
import com.tarena.exam.dao.StudentDaoFromTextFile;
import com.tarena.exam.model.Request;
import com.tarena.exam.model.Response;
import com.tarena.exam.model.Student;

public class ServerMainClass {
	private static final long serialVersionUID = 1L;
	
	private ServerSocket ss;

	private StudentDao stuDao;

	private PaperDao pDao;

	private ScoreDao scoDao;

	private List allSubjects;

	private Properties pro;

	public ServerMainClass() {
		try {
			ss = new ServerSocket(8888);
			stuDao = new StudentDaoFromTextFile(new File("student.dat"));
			pDao = new PaperDaoFromFile();
			allSubjects = new ArrayList();
			pro = new Properties();
			// ???????/
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void init() {
		while (true) {
			try {
				Socket s = ss.accept();
				new ServerThread(s).start();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	class ServerThread extends Thread {
		private Socket s;

		private ObjectInputStream ois;

		private ObjectOutputStream oos;

		public ServerThread(Socket s) {
			this.s = s;
			try {
				ois = new ObjectInputStream(s.getInputStream());
				oos = new ObjectOutputStream(s.getOutputStream());
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		public void run() {
			try {
				while (true) {
					Request req = (Request) ois.readObject();
					System.out.println("-----------------------1");
					System.out.println(req.getType());
					switch (req.getType()) {
					case Request.LOGIN_REQUEST:
						login(req);
						break;
					case Request.BEGIN_REQUEST:
						begin(req);
						break;
					case Request.SEND_REQUEST:
						send(req);
						break;
					case Request.QUIT_REQUEST:
						quit(req);
						break;
					}
				}
			} catch (IOException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		private void login(Request req) {
			int id = Integer.parseInt((String)(req.getData("id")));
			String passwd = (String) req.getData("passwd");
			Student s = stuDao.getStudent(id, passwd);
			ArrayList arr = new ArrayList();
			Set set = new HashSet();
			try {
				pro.load(new FileInputStream("subject.cfg"));
				set = pro.keySet();
				Iterator it = set.iterator();
				while (it.hasNext()) {
					arr.add(it.next());
				}
				Response res = new Response(Response.LOGIN_RESPONSE);
				res.addData("student", s);
				res.addData("subject", arr);
				
				oos.writeObject(res);
				oos.flush();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		private void begin(Request req) {
			String subject = (String) req.getData("subject");
			String course = pro.getProperty(subject);
		}
		private void send(Request req) {
			// ???
		}
		private void quit(Request req) {
			// ???
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new ServerMainClass().init();

	}

}

⌨️ 快捷键说明

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