📄 serverpart.java
字号:
/**
*@ServerPart.java
*@author weiWang
*@date 2006-3-27
*/
package com.herb.server;
//服务器类
import java.net.*;
import java.io.*;
import java.util.*;
public class ServerPart implements Runnable{
ServerSocket serverSocket;
Socket socket;
public static final int PORT=8000;
static BufferedReader in;
static PrintWriter out;
private static final String CODE1="001"; //系名信息的代号
private static final String CODE2="002"; //学生信息的代号
private static final String CODE3="003"; //修改成绩的代号
private static final String CODE4="004"; //存储聊天内容代号
private static final String CODE5="005"; //返还聊天内容代号
private static final String CODE6="006"; //返回某专业学生姓名代号
private static final String CODE7="007"; //返回专业名
public void run(){
System.out.println("Server thread run now...");
try{
runServer();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//启动线程
public void runServer()throws Exception{
Vector v=new Vector();
try{
serverSocket=new ServerSocket(PORT);
while(true){
socket=serverSocket.accept();
in=new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())),true);
String s=in.readLine(); //读入确认代号
if(s.equals(CODE1)) //判断是哪一个代号
transMajor(); //传送系名
if(s.equals(CODE2))
transStudent();
if(s.equals(CODE3))
resetMark();
if(s.equals(CODE4))
chatting();
if(s.equals(CODE5))
returnChatMsg();
if(s.equals(CODE6))
returnChatter();
if(s.equals(CODE7))
returnMajor(); //transMajor也传送了,但它执行了表格刷新操作
}
}finally{
System.out.println("client has lose the conect!!");
if(!(socket.isClosed())){
System.out.println("server close....");
serverSocket.close();
}
}
}
//传送系名数据(当CODE代码为001时)
public static void transMajor(){
Vector majorVector=new Vector();
majorVector=FileEvent.getFileName();
out.println(CODE1); //返回确认信息
for(int i=0;i<majorVector.size();i++){
out.println(majorVector.elementAt(i));
out.flush();
}
out.println("over");
}
//传送某系学生信息(当CODE代码为002时)
public static void transStudent()throws IOException{
out.println(CODE2);
Vector studentVector=new Vector();
String major=in.readLine();
System.out.println("major="+major);
studentVector=FileEvent.getStudent(major);
for(int i=0;i<studentVector.size();i++){
out.println(((Student)(studentVector.elementAt(i))).getStudentId());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentName());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentSex());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentMajor());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentClass());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentLesson());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentMark());
out.flush();
out.println(((Student)(studentVector.elementAt(i))).getStudentPhone());
out.flush();
}
out.println("over");
out.flush();
}
//修改分数(CODE3)
public static void resetMark()throws IOException{
out.println(CODE3); //返回确认代码
String major=in.readLine();
int row=Integer.parseInt(in.readLine());
String markset=in.readLine();
FileEvent.resetStudentInfor(major,row,markset);
}
//接收聊天信息(CODE4)
public static void chatting()throws IOException{
out.println(CODE4); //返回确认代码,表示可以传送信息了
String msg=in.readLine();
String who=in.readLine();
FileEvent.saveChatMsg(msg,who);
System.out.println("..:"+msg+","+who);
}
//返回聊天纪录(CODE5)
public static void returnChatMsg()throws IOException{
out.println(CODE5); //返回确认码,表示开始接收聊天信息了
Vector v=FileEvent.getChatMsg();
for(int i=0;i<v.size();i++){
Vector d=(Vector)v.elementAt(i);
out.println(d.elementAt(0));
out.flush();
out.println(d.elementAt(1));
out.flush();
}
out.println("over");
out.flush();
}
//返回某系名中学生数据(CODE6)
public static void returnChatter()throws IOException{
out.println(CODE6);
out.flush();
String maj=in.readLine();
Vector v=FileEvent.getStudent(maj); //选择专业
for(int i=0;i<v.size();i++){
out.println(((Student)v.elementAt(i)).getStudentName());
out.flush();
}
out.println("over");
out.flush();
}
// 返回系名(CODE7)
public static void returnMajor(){
out.println(CODE7);
out.flush();
Vector v=new Vector();
v=FileEvent.getFileName();
for(int i=0;i<v.size();i++){
out.println(v.elementAt(i));
out.flush();
}
out.println("over");
out.flush();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -