?? 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 + -