📄 servermainclass.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 + -