您的位置:首页 > 其它

防火墙测试软件

2015-08-11 10:05 381 查看
具有如下功能

更改本机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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: