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

📄 clientport.java

📁 一个采用Java Socket编程实现的C/S模式的记单词软件
💻 JAVA
字号:
package clientport;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ClientPort implements Runnable {
    Login insystem;
    Register register1;
    password password1;
    select select1;
    user1 NormalUser;
    user2 ManagerUser;
    int usertype;
    Vector DgreeWord;
    Vector StrangeWord;
    Vector UserNumber;
    String username;
    NewWordText_Frame newword;
    
    public ClientPort() {
        insystem = new Login(this);
        insystem.setVisible(true);
        register1 = new Register(this);
        register1.setVisible(false);
        password1 = new password(this);
        password1.setVisible(false);
        select1 = new select(this);
        select1.setVisible(false);
        NormalUser = new user1(this);
        NormalUser.setVisible(false);        
        ManagerUser = new user2(this);
        ManagerUser.setVisible(false);
        usertype = -1;
        username = null;
        Thread thread = new Thread(this);
        thread.start();
        DgreeWord = new Vector();
        StrangeWord = new Vector();  
    }
    
    public static void main(String[] args) {
        new ClientPort();
        
    }
    public void setusername(String st1){
        username = st1;
    }
    public String getusername(){
        return username;
    }
    public void SetType(int i){
        usertype = i;
    }
    public int GetType(){
        return usertype;
    }
    private void getmessage(String str){
        String str1 = str;
        String str2,str3;
        int st;
        str2 = str.substring(0,3);
        str3 = str.substring(3,str.length());
        st = Integer.parseInt(str2);
        switch(st){
            case 111:            
                SuccessfulLogin(str3);
                break;
            case 112:
                SuccessfulEroll(str3);
                break;
            case 113:
                SuccessfulBrowse(str3);
                break;
            case 114:
                SuccessfulRead_in(str3);
                break;
            case 115:                
                SuccessfulChangePassword(str3);
                break;
            case 116:
                SuccessfulAdd_Strangeword(str3);
                break;
            case 117:
                SuccessfulLookover(str3);
                break;
            case 118:
                SuccessfulDelete(str3);
                break;
            case 119:
                System.out.println("收到数据包");
                Successfulnewword(str3);
                break;
            case 120:
                SuccessfulInserch_oneword(str3);
                break;
        }
        
    }
    
    public void run() {
        DatagramSocket data = null;
        DatagramPacket datap = null;
        byte buffer[] = new byte[30000];
        try {
            datap = new DatagramPacket(buffer,buffer.length);
            data = new DatagramSocket(8888);
        } catch (SocketException ex) {
            ex.printStackTrace();
        }
        while(true){            
            try {
                data.receive(datap);                
                int length = datap.getLength();
                String message=new String(datap.getData(),0,length);
                getmessage(message);
            } catch (IOException ex) {
                ex.printStackTrace();
            }           
        }
    }
    public void SentMessage(String st){
        String str = st;
        byte[] buffer = str.getBytes();
        try {
            InetAddress address = InetAddress.getByName("127.0.0.1");
            DatagramSocket data_socket = new DatagramSocket();
            DatagramPacket data_packet = new DatagramPacket(buffer,buffer.length,address,9999);
            data_socket.send(data_packet);             
        } catch (Exception ex) {}     
    }
    
    private void  SuccessfulLogin(String st){
        if(st.equalsIgnoreCase("ok ")){
            if(usertype == 2){  
                select1.setVisible(true);  
                insystem.setVisible(false);
            }
            
            if(usertype == 3){
                ManagerUser.setVisible(true);
                insystem.setVisible(false);               
            }
            NormalUser.getpane().setText("用户名:" + username);
            NormalUser.getpanel().setText("等级:" + usertype);
        }
        if(st.equalsIgnoreCase("no1 ")){
            insystem.setLabel("你的密码错误请检测");
            
        }
        if(st.equalsIgnoreCase("no2 ")){
            insystem.setLabel("你的用户名不存在,请先注册");           
        }       
    }
    private void SuccessfulEroll(String st){
        if(st.equalsIgnoreCase("ok ")){//注册成功       
            successful succes = new successful(insystem,register1);
        }        
        if(st.equalsIgnoreCase("no ")){//注册失败
            register1.setLabel1("该用户名已存,请更换后再注册");
        }
    }
    private void SuccessfulBrowse(String st){
        int k = -1;
        int m = 0;
        String WordName = null;
        String Wordtype = null;
        String Wordmeanse = null;
        String Worddegree = null;        
        for(int i = 0; i < st.length(); i++){
            if(st.charAt(i) == ' '){
                if(m == 0){
                    WordName = st.substring(k+1,i);                    
                }
                if(m == 1){
                    Wordtype = st.substring(k+1,i);
                }
                if(m == 2){
                    Wordmeanse = st.substring(k+1,i);
                }
                if(m == 3){
                    Worddegree = st.substring(k+1,i);
                }
                k = i;
                m ++;  
                m = m % 4;
                if(m == 0){
                    word word1 = new word(WordName,Wordtype,Wordmeanse,Worddegree);
                    NormalUser.getwordList().append(WordName + "                     " + Wordtype +"\n");                                                          
                    DgreeWord.add(word1);
                }  
            }
        }
        NormalUser.getwordexplan().append(((word)DgreeWord.get(0)).getWordmeanse());
    }
    private void SuccessfulRead_in(String st){
        if(st.equalsIgnoreCase("ok ")){
            successful suc = new successful(ManagerUser);
        }
    }
    private void SuccessfulChangePassword(String st){
        if(st.equalsIgnoreCase("ok ")){//修改成功            
            successful succes = new successful(password1);
            
        }
        if(st.equalsIgnoreCase("no1 ")){//系统忙,操作为成功,稍后重试
        }
    if(st.equalsIgnoreCase("no2 ")){//你的旧密码错误
        
    }
}
private void SuccessfulAdd_Strangeword(String st){
    if(st.equalsIgnoreCase("ok ")){//添加生词成功
        NormalUser.getwordexplan().append("添加生词成功") ;
    }
    if(st.equalsIgnoreCase("no ")){//单词已存在
        NormalUser.getwordexplan().append("插入失败") ;
    }
}
private void SuccessfulLookover(String st){
    int k = -1;
    String UserName;
    for(int i = 0; i < st.length(); i++){
        if(st.charAt(i) == ' '){
            UserName = st.substring(k+1,i);
            k = i;
            UserNumber.add(UserName);
        }
    }
}
private void SuccessfulDelete(String st){
    if(st.equalsIgnoreCase("ok ")){//删除成功
        successful suc = new successful(newword,4);
        //suc.setVisible(false);
    }
    if(st.equalsIgnoreCase("no ")){//删除失败
        successful suc = new successful(newword,5);
    }
}
public void Successfulinserchtype(String st){ //基于本地在刚进入系统时的取得vector
    word word1;
    String type = st;
    NormalUser.getwordList().setText("");       
    for(int i = 0; i < DgreeWord.size();i++){           
        word1 = (word)DgreeWord.get(i);
        if(word1.getWordtype().equalsIgnoreCase(type)){                 
            NormalUser.getwordList().append(word1.getWordName()+"                 "+word1.getWordtype()+"                   "+word1.getWordmeanse()+"\n");
        }
    }
}
public void Successful_wordname(String name,int j){//添加生词到生词表
    int state = 0;
    int k = j;
    String word_name = name;
    word word1;
    NormalUser.getwordexplan().setText("");
    for(int i = 0; i < DgreeWord.size(); i++){
        word1 = (word)DgreeWord.get(i);
        if(word1.getWordName().equalsIgnoreCase(word_name)){
            if(k ==1){
                NormalUser.getwordexplan().append(word1.getWordName()+"    "+word1.getWordtype()+"   "+word1.getWordmeanse()+"\n"); 
            }
            if(k == 2){
                String sentmass = username + " "+ word1.getWordName()+" "+word1.getWordtype()+" "+word1.getWordmeanse()+" "+word1.getWorddegree()+" ";
                SentMessage("116"+sentmass);
            }
            state ++;
        } 
    }
    if(state == 0){
        NormalUser.getwordexplan().append("单词库中没有此单词");
    }
}
public void  SuccessfulInserch_oneword(String st){//管理员要查询某一个单词
    String anwser = st;
    if(anwser.equalsIgnoreCase("ok ")){
        if(ManagerUser.getstate() == 1){
            ManagerUser.getwordlist().append(ManagerUser.getString()+"      删除成功\n");
            ManagerUser.getTextfield().setText("");
                        }
        
        if(ManagerUser.getstate() == 2){               
            //System.out.println("你录入的单词在词库中已存在");               
            ManagerUser.getwordlist().append(ManagerUser.getString()+"      字库中已有你要插入的单词\n");
            ManagerUser.getTextfield().setText("");
        }
    }
    if(anwser.equalsIgnoreCase("no ")){
        if(ManagerUser.getstate() == 1){
            //System.out.println("你输入的单词在词库中不存在");               
            ManagerUser.getwordlist().append(ManagerUser.getString()+"      字库中没有你要查询单词,删除失败\n");
            ManagerUser.getTextfield().setText("");
        }
        if(ManagerUser.getstate() == 2){
            ManagerUser.getwordlist().append(ManagerUser.getString()+"      插入成功\n");
            ManagerUser.getTextfield().setText("");
        }
        
    }
}
private void Successfulnewword(String str){
    String st = str;
    String wordname = null;
    String wordtype = null;
    String wordmean = null;
    String worddegree = null;
    String st1[][] =  new String[50][4];
    int m = 0;
    int j = 0;
    int k = -1;       
    System.out.println("收到数据包"+st);
    for(int i = 0; i < st.length();i++){
        if(st.charAt(i) == ' '){
            if(m == 0){
                wordname = st.substring(k+1,i);
                System.out.println(wordname +"   ");
            }
            if(m == 1){
                wordtype = st.substring(k+1,i);
                System.out.println(wordtype +"   ");
            }
            if(m == 2){
                wordmean = st.substring(k+1,i);
                System.out.println(wordmean+"   ");
            }
            if(m == 3){
                worddegree = st.substring(k+1,i);
                System.out.println(worddegree +"   ");
            }
            k = i;
            m++;
            m = m % 4;
            if(m == 0){
                st1[j][0] = wordname;
                st1[j][1] = wordtype;
                st1[j][2] = wordmean;
                st1[j][3] = worddegree;
                j ++;
            }
        }
    }
         newword =new NewWordText_Frame(st1,username); 
         newword.setVisible(true);
}
public user2 getuser2(){
    return ManagerUser;
}
public user1 getuser1(){
    return NormalUser;
}
    public select getselect(){
        return select1;
    }
    public password getPassword(){
        return password1;
    }
    public Register getRegister(){
        return register1;
    }
    
    public Login getLogin(){
        return insystem;
    }
    public Vector getVector(){
        return  DgreeWord ;
    }
    public NewWordText_Frame getnewword(){
        return newword;
    }
}

⌨️ 快捷键说明

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