防火墙测试软件

具有如下功能

更改本机ip地址

启动本机socket服务

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//import gui.UserAdd;
//import UserAdd;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;


/**
 * @author Administrator
 *
 */
public class serverGui  extends JFrame {


private JLabel ip_add_J = null;
private JLabel port_J = null;
private Button start =null;
private Panel p=new Panel();
private TextField ip_add_T = null;
private TextField port_T = null;
private JTextArea J_test = null;

/*
* 主函数
*/
public static void main (String args[]){
new serverGui().CreateGui();
}

/*
*具体是编写窗体的属性

*/
public void CreateGui()  {
   //设置窗体框架关闭时的操作,this表示new GuiTest01()实例化得对象
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置GuiTest01窗体的位置
this.setBounds(220,100,300,300);
        //设置窗体的大小,也可以用
this.setSize(800,600);
//this.pack();
p.setLayout(null);
//开始按钮
start=new Button("开始服务");
start.setPreferredSize(new Dimension(150,100));
start.setFont(new Font("黑体",Font.BOLD,30));
start.setBounds(610, 50, 150, 100);
start.addActionListener(new S_c());
p.add(start);
//添加IP地址
ip_add_J = new JLabel("更改本机IP地址: ");
ip_add_J.setFont(new Font("黑体",Font.BOLD,20));
ip_add_T = new TextField(25);
ip_add_T.setFont(new Font("黑体",Font.BOLD,20));
ip_add_J.setBounds(50, 50, 170, 20);
ip_add_T.setBounds(220, 50, 200, 30);
p.add(ip_add_J);
p.add(ip_add_T);

//添加横隔
JSeparator js1  = new JSeparator();
js1.setBounds(50, 100, 350, 0);
p.add(js1);

//添加端口
port_J= new JLabel("服务端口号: ");
port_J.setFont(new Font("黑体",Font.BOLD,20));
port_T = new TextField(25);
port_T.setFont(new Font("黑体",Font.BOLD,20));
port_J.setBounds(50, 120, 130, 20);
port_T.setBounds(220, 120, 200, 30);
p.add(port_J);
p.add(port_T);

//添加横隔2
JSeparator js2  = new JSeparator();
js2.setBounds(0, 170, 800, 50);
p.add(js2);

//chuang
J_test = new JTextArea(600,400);
J_test.setFont(new Font("黑体",Font.BOLD,20));
//J_test.setBounds(50, 190, 640, 300);
J_test.setLineWrap(true);        //激活自动换行功能 
J_test.setWrapStyleWord(true);            // 激活断行不断字功能
//J_test.append("服务器已经启动xxx");
JScrollPane scroll = new JScrollPane(J_test);
scroll.setBounds(50, 190, 640, 300);
scroll.setHorizontalScrollBarPolicy( 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
scroll.setVerticalScrollBarPolicy( 
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
p.add(scroll);

this.add(p);
//让窗体GuiTest01显示出来
this.setVisible(true);


}



/*
* 点击开始后更改ip地址部分+启动socket服务的线程
*/
class Cha_ip extends Thread {

public Cha_ip(){
}

public void run(){

//该ip
String ipad=ip_add_T.getText();
String netsh = "netsh interface ip set address name=\"本地连接\" source=static addr="+ipad+" mask=255.255.252.0 gateway=10.23.0.254 gwmetric=auto";
System.out.print(netsh);
System.out.print(ipad);
String[] cmd = new String[]{ "cmd.exe", "/C", netsh};

if(ipad.equals("")){
System.out.println("地址为空");
}else{
try {
Process process = Runtime.getRuntime().exec(cmd);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

//socket服务启动
String SportNo=port_T.getText();
if(SportNo.equals("")){
System.out.print("端口为空");
}else {
int portNo=Integer.parseInt(SportNo);
System.out.print("   socket-server端口为:"+portNo);
ServerSocket ss = null;
try {
ss = new ServerSocket(portNo);
J_test.append("服务器已经启动\n");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
   }

while(true){
try{
Socket  socket = ss.accept();      //阻塞、侦听。
Soin so = new Soin(socket);
so.start();

}catch (Exception e6) 
{
          e6.printStackTrace();

}
}
}
}

/*
* 接收客户端信息的线程
*/
class Soin extends Thread {
Socket socket01 ;
public Soin(){
   
}
public Soin(Socket b){
this.socket01=b;
System.out.print("来自客户");
};
public void run(){
try{
BufferedReader ins = new BufferedReader(new InputStreamReader(socket01.getInputStream()));
PrintStream outs=new PrintStream(socket01.getOutputStream());

while(true){
String str_sy = ins.readLine();
       if(str_sy.equals("bb"))
        break;
System.out.println("端的信息:"+str_sy);
J_test.append("收到客户端的信息为:"+str_sy+"\n");
}
socket01.close();

}catch (Exception e) 
           {
               e.printStackTrace();
           } 


};
}


/*
* 开始按钮触发后的操作
*/
class S_c implements ActionListener {
public void actionPerformed(ActionEvent e) {


Cha_ip cIp = new Cha_ip();
cIp.start();

   }
}


}



也可以制作成jar包来执行

点击myeclipse---file---export---java(jar file)--选择项目下的src或者直接选择项目--在jar file中输入保存的路径和名字如d:/aaa.jar--点击next next 在main class选择主class(如果不选可能jar中没有主函数,不能运行)

执行

d:

java -jar aaa.jar


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值