📄 client.java
字号:
import java.io.*;
import java.net.*;
import java.math.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import security.*;
import decrypt.*;
import java.lang.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.util.*;
import java.applet.*;
public class Client extends Thread //implements ActionListener
{Socket connection;
static DataInputStream input;
static DataOutputStream output;
static int ispass=0; //是否有权限察看本地通话记录
static security_kind hong=new security_kind();
static decrypt_kind dehong=new decrypt_kind();
static wpass w_pass=new wpass();
static String user_name="";
static String user_word="";
public Client()
{ try
{connection=new Socket(InetAddress.getLocalHost(),9876);
input=new DataInputStream(connection.getInputStream());
output=new DataOutputStream(connection.getOutputStream());
}
catch(Exception e){}
this.start();
}
public void run()
{String listenstr=new String("");
try
{while(true)
{
listenstr=input.readUTF();
if(listenstr.startsWith("PASSOK"))
{
Client.user_name=Client.w_pass.passname.getText();
Client.user_word=Client.w_pass.password.getText();
Client.w_pass.passname.setText("");Client.w_pass.password.setText("");
Client.w_pass.setVisible(false);
Mail wmail=new Mail(listenstr.substring(6));
}
else if(listenstr.startsWith("Sorry"))
{wmessage main3=new wmessage("发送提示","帐户名或密码错误","wrong.jpg");main3.setVisible(true);}
else if(listenstr.startsWith("online"))
{String tempman=new String(listenstr.substring(6));String tempon=new String("");int tempnumber=tempman.indexOf("\1");
for(int i=0;i<tempnumber;i+=10)
{tempon+=tempman.substring(i,i+10);}
wmessage online=new wmessage("在线人列表","在线人:"+tempon,"提示.jpg");
}
else if(listenstr.startsWith("updataok"))
{wmessage updataok=new wmessage("修改密码成功"," 修改密码成功","提示.jpg");updataok.setVisible(true);Mail.update.setVisible(false);
}
else if(listenstr.startsWith("sendok"))
{wmessage main1=new wmessage("发送提示"," 信息已经发送","提示.jpg");main1.setVisible(true);}
else if(listenstr.startsWith("sendfalse"))
{wmessage main2=new wmessage("发送提示"," 此人不在线","wrong.jpg");main2.setVisible(true);}
}
}
catch(Exception e){}
}
public static void main(String args[]) throws Exception
{
new Client();
}
}
/****************************************登陆窗口****************************************************************/
class wpass extends Frame implements ActionListener,ItemListener
{Label label=new Label("登录窗口");
Label label2=new Label("请输入用户名");
Label label3=new Label("请输入密码");
Label label4=new Label(" 请选择部门");
Panel panel=new Panel();
Panel panel2=new Panel();
Panel psouth=new Panel();
static TextField passname=new TextField(10);
TextField password=new TextField(10);
String passdebe;
static int passnumber=0;
Checkbox ch_box1,ch_box2,ch_box3;CheckboxGroup ch_dept;
TextArea securit=new TextArea();
Button b1=new Button("确定");
Button b2=new Button("取消");
Imagecanvas canvas=new Imagecanvas("登陆界面.jpg");
wpass()
{super("登陆界面 客户端");
setBounds(220,150,150,200);
setResizable(false);
ch_dept=new CheckboxGroup();
ch_box1=new Checkbox("管理部",true,ch_dept);passdebe="manage";
ch_box2=new Checkbox("人事部",false,ch_dept);
ch_box3=new Checkbox("物流部",false,ch_dept);
panel.setLayout(new GridLayout(3,4));
panel.add(new Label());panel.add(label2);panel.add(passname);panel.add(new Label());
panel.add(new Label());panel.add(label3);panel.add(password);panel.add(new Label());
panel.add(new Label());panel.add(ch_box1);panel.add(ch_box2);panel.add(ch_box3);
psouth.add(b1);psouth.add(b2);
ch_box1.addItemListener(this);ch_box2.addItemListener(this);ch_box3.addItemListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
password.setEchoChar('*');
add("North",canvas);
add("Center",panel);
add("South",psouth);
pack();
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);
}
});
show();
}
public void itemStateChanged(ItemEvent e)
{if(e.getItemSelectable()==ch_box1)
passdebe="manage";
else if(e.getItemSelectable()==ch_box2)
passdebe="man";
else if(e.getItemSelectable()==ch_box3)
passdebe="thing";
}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==b1)
{if(passname.getText().equals(""))
{wmessage mess1=new wmessage("错误提示"," 帐户名不能为空","wrong.jpg");mess1.setVisible(true);}
else
{String validate="pass"+passname.getText()+"\1"+password.getText()+"\2"+passdebe;
try
{
Client.output.writeUTF(Client.hong.RSA(validate));
}
catch(Exception e1){}
}
}
else if(e.getSource()==b2)
{System.exit(0);}
}
}
/******************************************插入图像****************************************************************/
class Imagecanvas extends Canvas
{Toolkit tool;Image myimage;
Imagecanvas (String s)
{getSize();
tool=getToolkit();
myimage=tool.getImage(s);
}
public void paint(Graphics g)
{g.drawImage(myimage,30,10,myimage.getWidth(this),myimage.getHeight(this),this);
}
public Dimension getPreferredSize()
{return new Dimension(160,160);
}
}
/****************************************发信息窗口****************************************************************/
class Mail extends Frame implements Runnable,ActionListener,ItemListener
{
Label lname=new Label("发信人");
Label lsent=new Label("请选择收信人");
Label w_sent=new Label("请输入要发的信息");
Label w_receive=new Label("聊天记录区");
Panel pcenter=new Panel();
Panel pnorth=new Panel();
Panel psouth=new Panel();
TextField passname=new TextField(Client.user_name);
TextField password=new TextField(15);
Choice choice=new Choice();
Choice cname1=new Choice();
Choice cname2=new Choice();
Choice cname3=new Choice();
TextArea smessage=new TextArea();
TextArea a_receive=new TextArea();
String temporary=new String("");
MenuBar menubar;Menu menu1,menu2,menu3,menu4,menu5;
MenuItem me_item1,me_item2,me_item3,me_item4,me_item5,me_item6,me_item7,me_item8,me_item9,me_item10,me_item11,me_item12,me_item13,me_item14,me_item15;
int x=0,y=0,is_number=0;
Button b1=new Button("发送信息");
Button b2=new Button("清除聊天记录");
int port=666;
int inport;
byte data[]=new byte[8192];
DatagramPacket pack=null;
int choicestart=0,choiceend=10;
int array_port[][]=new int[10][10];
int cnumber=0;
int choiceport=0,cnameport=0;
FileDialog file_open;
String toman=new String("");
Date date=new Date();
static updateword update;
String detoday,today;
int condeptnumber=0;
Mail(String s)
{super(Client.user_name+"--发信息窗口");
setBounds(180,50,500,500);
setResizable(false);
menubar=new MenuBar();menu1=new Menu("功能");menu2=new Menu("查看");menu3=new Menu("字符串加密");menu5=new Menu("文件加密");
me_item1=new MenuItem("修改用户密码");me_item2=new MenuItem("重新登陆");me_item3=new MenuItem("退出登陆");
me_item4=new MenuItem("查看在线人数");me_item5=new MenuItem("查看聊天记录");
me_item6=new MenuItem("凯撒加密");me_item7=new MenuItem("DES加密");me_item8=new MenuItem("CBC加密");me_item9=new MenuItem("数字签名");
me_item10=new MenuItem("解密凯撒加密");me_item11=new MenuItem("解密DES加密");me_item12=new MenuItem("解密CBC加密");me_item13=new MenuItem("解密数字签名");
me_item14=new MenuItem("文件加密");me_item15=new MenuItem("文件解密");
menu1.add(me_item1);menu1.add(me_item2);menu1.add(me_item3);
menu2.add(me_item4);menu2.add(me_item5);
menu3.add(me_item6);menu3.add(me_item7);menu3.add(me_item8);menu3.add(me_item9);
menu5.add(me_item14);menu5.add(me_item15);
menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menubar.add(menu5);
setMenuBar(menubar);
/****************************************转换日期****************************************************************/
if(date.toString().substring(4,7).equals("Jan"))
detoday=new String("1月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Feb"))
detoday=new String("2月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Mar"))
detoday=new String("3月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Apr"))
detoday=new String("4月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("May"))
detoday=new String("5月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Jun"))
detoday=new String("6月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Jul"))
detoday=new String("7月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Aug"))
detoday=new String("8月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Sep"))
detoday=new String("9月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Oct"))
detoday=new String("10月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Nov"))
detoday=new String("11月"+date.toString().substring(8,10)+"日");
else if(date.toString().substring(4,7).equals("Dec"))
detoday=new String("12月"+date.toString().substring(8,10)+"日");
if(detoday.substring(2,3).equals("0"))
{today=detoday.substring(0,2)+detoday.substring(3);}
else today=detoday;
file_open=new FileDialog(this,"保存文件",FileDialog.LOAD);
file_open.setVisible(false);
int deptnumber=s.indexOf("\1");
inport=Integer.parseInt(s.substring(1,5));
String deptmessage=new String(s.substring(5,deptnumber).trim());
int number=(deptmessage.length())/10+1;
condeptnumber=number;
pack=new DatagramPacket(data,data.length);
choice.add("请选择");
cname1.add("请选择");cname2.add("请选择");cname3.add("请选择");
if(number==1)
{choiceend=deptmessage.length();}
for(int i=1;i<=number;i++)
{ choice.add(deptmessage.substring(choicestart,choiceend));
if((choiceend+10)<=deptmessage.length())
{choicestart+=10;choiceend+=10;}
else
{choicestart+=10;choiceend+=(deptmessage.length()-choicestart);}
}
int cnamenumber=s.indexOf("\2");
/****************************************添加权限****************************************************************/
if(number!=0)
{String cnamemessage=new String(s.substring(deptnumber+1,cnamenumber).trim());
cnumber=(cnamemessage.length())/14;
choicestart=10;choiceend=14;
for(int i=1;i<=cnumber;i++)
{array_port[1][i]=Integer.parseInt((cnamemessage.substring(choicestart,choiceend)));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -