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

📄 serverpart.java

📁 学生管理系统
💻 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 + -