防火墙测试软件
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
更改本机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
相关文章推荐
- 深入理解JVM虚拟机
- J - Sabotage - UVA 10480(最大流)
- 使用命令远程注销服务器
- jquery删除某数组某几个下标的元素
- HDOJ 畅通工程再续(最小生成树--prime)
- jQuery中prepend()方法使用详解
- PHP实现删除字符串中任何字符的函数
- jsp页面的加载顺序
- 正则表达式
- linux 查看系统信息命令(比较全)
- 18-Map集合-08-常用对象API(集合框架-Map集合-TreeMap存储自定义对象)
- POJ 3041 Asteroids 匈牙利算法 最小点覆盖
- 程序员很穷
- PHP面向对象(OOP):__toString()方法
- Creating Isomorphic Apps with Node.js, React, and Express
- 转转
- 编译原理第一章学习总结
- poj 1258 Agri-Net 【Prim&Kruskal】
- CodeVS 1213 解的个数
- Java I/O 操作及优化建议