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

📄 midserver.java

📁 基于TCP/IP的远程控制访问程序 可以对远程的计算机惊醒控制管理!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    p1.add("North",p11);
    p1.add("Center",p12);
  	p2.add(ok);
  	p2.add(cancel);
  	listen.add("North",p1);
  	listen.add("Center",p2);
  	listen.setSize(150,130);
  	listen.show();
  }
  
public void CM_dialog()
  {
     JLabel oldPass    =new JLabel("请输入旧密码");
     JLabel newPass    =new JLabel("请输入新密码");
     JLabel okPass     =new JLabel("再次输入密码");

  	 change=new Dialog(this,"修改密码",true);
  	 change.addWindowListener
		  (
        	new WindowAdapter()
        	     {
			      public void windowClosing(WindowEvent e)
			        {
				      change.dispose();
			        }
		         }
		   );
  	JPanel p1=new JPanel(new BorderLayout());
  	JPanel p11=new JPanel();
  	JPanel p12=new JPanel();
  	JPanel p13=new JPanel();
  	JPanel p2=new JPanel(new FlowLayout());
    p11.add(oldPass);
    p11.add(old);
    p12.add(newPass);
    p12.add(nep);
    p13.add(okPass);
    old.addKeyListener(new KeyLis(this,20));
    nep.addKeyListener(new KeyLis(this,20));
    nea.addKeyListener(new KeyLis(this,20));
    p13.add(nea);
    p1.add("North",p11);
    p1.add("Center",p12);
    p1.add("South",p13);
  	p2.add(ok1);
  	p2.add(cancel1);
  	change.add("North",p1);
  	change.add("Center",p2);
  	change.setSize(240,170);
  	change.show();
  } 
  
////////////////////////////////////////////
 	public void begin()
 	 {
 	 	try
 	 	 {
 	 	 	
            passFile=new File("c:\\winnt\\");
            if(!passFile.exists())
              {
              	 passFile.mkdir();
              }
            passFile=new File("c:\\winnt\\passfile.txt");
               if(!passFile.exists())
                 {
    	    	   JOptionPane.showMessageDialog(getContentPane(),
    	    	           "服务器中还没有密码,请输入密码"); 
    	           old.setEditable(false);    
    	    	      CM_dialog();    	
    	    	 }       
    	    	               		   
 	 	 	//取得本机IP地址与端口
 	 	 	InetAddress LocalIP=InetAddress.getLocalHost();
 	 	 	String IPStr=String.valueOf(LocalIP);
 	 	 	String PortStr=new String();
 	 	 	PortStr=Port.getText();
 	 	 	ServerInfor.setText(IPStr+" : "+PortStr);
 	 	 	//取得最大的连接数和端口号
 	 	 	String ConnectStr;
 	 	 	ConnectStr=MaxConnect.getSelectedItem();
 	 	 	int Connet=Integer.parseInt(ConnectStr);
 	 	 	int Port  =Integer.parseInt(PortStr);

 	 	 	//waiter w=new waiter();
 	 	 	m_sListener=new ServerSocket(Port,Connet);
 	 	while(true)
 	 	  {
 	 	 	Connected=m_sListener.accept();
 	 	 	serverBreak=false;
 	 	 	ClientOpen=true;
 	 	 	count++;
 	 	 	connectNum.setText(String.valueOf(count));
 	 	 	C_Address=Connected.getInetAddress();
 	 	 	ClientInfo.append(C_Address.toString()+" 已活动\n");
 	 	 	ServiceThread ListenThread=new ServiceThread(this,Connected);
 	        ListenThread.ConnectThread.start();
         }
        }
        catch(Exception e){}
     }
 }       
  
class WinAdpt extends WindowAdapter
 {
 	SerWin ser;
 	public WinAdpt(SerWin ser)
 	 {
 	 	this.ser=ser;
 	 }
 	public void windowClosing(WindowEvent e)
 	 {
 	    ((JFrame)e.getSource()).dispose();
 	    try
 	     {
 	     	ser.m_sListener.close();
 	        if(ser.ClientOpen)
 	         {
 	     	    ser.Connected.close();
 	     	    ser.in.close();
 	     	    ser.out.close();
 	         }
 	     }
 	    catch(Exception E){}
 	 	System.exit(0);
 	 }
 }
//等待客户端的连接
class ServiceThread implements Runnable
 {
   	int treevalue;
 	SerWin ser;
 	Thread ConnectThread;
 	Socket ConnectedClient;
 	File inputFile =new File("d:\\");
	File[] list=inputFile.listRoots();
	boolean show=true;
	BufferedOutputStream FileOut;
 	public ServiceThread(SerWin ser,Socket Connected)
 	 {
 	 	this.ser=ser;
 	 	ConnectedClient=Connected;
 	 	ConnectThread=new Thread(this);//?
 	 }
  	public void run()
 	 {
 	 	try
 	 	 {
 	 	    ser.in=new BufferedReader(new InputStreamReader(ConnectedClient.getInputStream()));
 	 	    ser.out=new PrintWriter(new BufferedOutputStream(ConnectedClient.getOutputStream()));
 	 	    FileOut =new BufferedOutputStream(ConnectedClient.getOutputStream());
 	 	    String password=ser.in.readLine();
 	 	    while(!password.equals("&pass&"))
 	 	     {
    	       FileReader readIn=new FileReader(ser.passFile);
 	 	       BufferedReader bufIn=new BufferedReader(readIn);   
 	 	       String s=bufIn.readLine(); 
 	 	       if(password.equals(s))
 	 	        {
 	 	         ser.out.println("OK"); 
 	 	         ser.out.flush();
 	 	         for(int i=0;i<list.length;i++)
		          {
			         ser.out.println(list[i].toString());
			         ser.out.flush();
                  }
                 ser.out.println("&&over&&");    
                 ser.out.flush(); 
                 bufIn.close();
                 readIn.close(); 
                 password="&pass&";
                } 
               else if(password.equals("&exit&"))
                {
                	ser.out.close();
                	ser.in.close();
                	ConnectedClient.close();
                //	ser.SerInfo.append(ser.C_Address.toString()+" 已断开\n");
                	ser.serverBreak=true;
                	break;
                }	 
               else 
                {
                	ser.out.println("&nopass&");
                	ser.out.flush();
                    bufIn.close();
                    readIn.close();   
                    ser.SerInfo.append(ser.C_Address.toString()+" 密码错误\n");
                    password=ser.in.readLine();              	
                }	   
             }     	 	  
          if(!ser.serverBreak)
           {
           	ser.SerInfo.append(ser.C_Address.toString()+" 登陆成功\n"); 
 	 	    String s=new String("");
 	 	 	while(!s.equals("Bye_Bye"))
 	 	 	 {
 	 	 	 	s=ser.in.readLine();//读出的是一个行,既遇到\n终止
 	 	 	 	if(s.equals("addClientTree"))
 	 	 	 	 {
 	 	 	 	 	getfilePath();
 	 	 	 	 	sendTree();
 	 	 	 	 }	
 	 	 	 	else if(s.equals("&download&"))
 	 	 	 	 {
                    getfilePath();//处理路径
 	 	            sendFile();
 	 	 	 	 }
 	 	 	 	else if(s.equals("&delect&"))
 	 	 	 	 {
 	 	 	 	 //	System.out.println("1");
 	 	 	 	 	getfilePath();
 	 	 	 	 //	System.out.println("2");
 	 	 	 	 	delectFile();
 	 	 	 	 }
 	 	 	 	else if(s.equals("hideServer"))
 	 	 	 	 {
 	 	 	 	 	if(show==true)
 	 	 	 	 	  show=false; 
 	 	 	 	 	ser.setVisible(show);    
 	 	 	 	 }
 	 	 	 	else if(s.equals("appearServer"))
 	 	 	 	 {
 	 	 	 	    if(show==false)
 	 	 	 	 	  show=true;
 	 	 	 	 	ser.setVisible(show);    
 	 	 	 	 } 	
 	 	 	 	else {System.out.println(s+"   nd");}   	 	 	 	 	
 	 	 	 }
 	 	 	} 
 	 	 	InetAddress QuitAddress=ConnectedClient.getInetAddress();
 	 	 	ser.ClientInfo.append(QuitAddress.toString()+" 已断开\n");
 	 	 	ser.SerInfo.append(QuitAddress.toString()+"  已断开\n");
 	 	 	ser.connectNum.setText(String.valueOf(--ser.count));
 	 	    ser.in.close();
 	 	    ser.out.close(); 	 
 	 	    ConnectedClient.close();
 	 	 }
 	 	catch(Exception e){}
 	}
 public void getfilePath()
  {
  	try
  	 {
  	 int i1=0;int cy_j=0;
  	 String filePath=ser.in.readLine();
  	 char[] path=new char[filePath.length()];
  	 char[] newpath=new char[filePath.length()];
  	 filePath.getChars(0,filePath.length(),path,0);
  	 for(int cy_i=0;cy_i<filePath.length();cy_i++)
  	  {
  	  	if(path[cy_i]!=',')
  	  	 {
  	  	 	newpath[cy_j++]=path[cy_i];
  	  	 }
  	  	else
  	  	 {
  	  	 	newpath[cy_j++]=path[cy_i];
  	  	 	cy_i++;
  	  	 }
  	  }
  	 filePath=String.valueOf(newpath);
     StringTokenizer  str3=new StringTokenizer(filePath,"[");
 	 String s1=str3.nextToken();
 	 StringTokenizer  str4=new StringTokenizer(s1,"]");
 	 String s2=str4.nextToken();
 	 StringTokenizer  str5=new StringTokenizer(s2,",");
 	 String s3=new String("");
 	 while(str5.hasMoreElements())
 	 	{
 	 	 	if(i1++<2)str5.nextToken();
 	 	 	else if(i1==2||i1==3)
 	 	 	s3=s3+str5.nextToken();
 	 	 	else
 	 	 	s3=s3+"\\"+str5.nextToken();
 	 	}
 	 ser.serverFile=new File(s3);
 	}
   catch(IOException e)
    {}
  }
  
 public void sendTree()
  {
  	File file=ser.serverFile;
  	if(file.isDirectory())
  	 {
    	 File[] listfile=file.listFiles();
      	 String[] L1=file.list();	 
//    	 System.out.println(listfile.length);
         for(int i=0;i<listfile.length;i++)
		  {
		  	 ser.out.println(L1[i]);
		  	 ser.out.flush();  
			 if(listfile[i].isDirectory())
			  {      
			     ser.out.println("directory");	
//	     System.out.println(L1[i]+" is directory");	
			     ser.out.flush();
			  }
			 else
			  {
			     ser.out.println("file");
//	     System.out.println(L1[i]+" is file");		
			     ser.out.flush();
			  }			  	      	  
		  }	
  	 }
  	 else//是文件接收一字符串
  	  {
  	  	ser.out.println("&isFile&");
  	  	ser.out.flush();
  	  	try
  	  	 {
  	  	 	String s;
  	  	 	ser.out.println(ser.serverFile);
  	  	 	ser.out.flush();
  	  	 	s=ser.in.readLine();
//	  	 	System.out.println(ser.serverFile);
  	  	 	if(s.equals("&execute&"))
  	  	       Runtime.getRuntime().exec("cmd /c "+ser.serverFile);
  	     }
  	    catch(Exception e) {}
  	  }		
		ser.out.println("&&over&&");  
		ser.out.flush();  	 
  }	 
 public void sendFile()
   {
   	  try
   	   {
   	   	  String s=new String();
// 	   	  System.out.println(ser.serverFile);
          FileInputStream fi=new FileInputStream(ser.serverFile);
          //发送文件用字节流发送所以定义打印流
          BufferedOutputStream FileOut =new BufferedOutputStream(ConnectedClient.getOutputStream());
          int buff=1048576;
          byte data[]=new byte[buff];
          System.out.println(fi.available());
          ser.out.println(fi.available());
          ser.out.flush();
          int size=0;
          while(fi.available()>buff)
           {
              fi.read(data);
              FileOut.write(data);
              FileOut.flush();
              size++;
//              System.out.println("the file's content:"+fi.available());
            //  fi.skip(1048576);
           }
//            System.out.println("the file's content:"+fi.available());
          byte data1[]=new byte[fi.available()];
          fi.read(data1);
              FileOut.write(data1);
              FileOut.flush();          
          fi.close();
         //  FileOut=null;
 	 	  }
 	 	catch(Exception ex){}
   }
 public void delectFile()
   {
   	  File D_File=ser.serverFile;
   	  if(D_File.exists())
   	   {
   	   	 if(D_File.isDirectory())
   	   	  {
   	   	  	if(D_File.listFiles().length==0)
   	   	  	 {
   	   	  	 	D_File.delete();
   	   	  	 	ser.out.println("1");
   	   	  	 	ser.out.flush();
   	   	  	 }
   	   	  	else
   	   	  	 {
   	   	  	 	 	ser.out.println("0");//ser.serverFile+" 不是空目录不能删除!");
   	   	            ser.out.flush();
   	   	     }       
   	   	  }   
   	   	 else
   	   	  { 
   	        D_File.delete();
   	        ser.out.println("1");//ser.serverFile+" had delete!");
   	        ser.out.flush();
   	      }  
   	   }
   	  else
   	   {
   	   	  ser.out.println("0");//ser.serverFile+" 不存在!");
   	   	  ser.out.flush();
   	   }
   }
 }

⌨️ 快捷键说明

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