java 通过管道 通信

来源:互联网 发布:斗鱼主播用的直播软件 编辑:程序博客网 时间:2024/06/05 12:01

java 编程  通过管道进行通信  向管道输入:

import java.io.IOException;

import java.io.PipedWriter;


public class Sender extends Thread {


        private PipedWriter out = new PipedWriter();
        public PipedWriter getOutputStream(){
            return out;
        }
        public void run(){
            String strInfo = new String("hello receiver\n duchunli ");
            try {
                out.write(strInfo);
                out.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

}

从管道输出:

import java.io.IOException;

import java.io.PipedReader;


public class Receiver extends Thread {
    private PipedReader in = new PipedReader();
    public PipedReader getInputStream()
    {
        return in;
    }
    public void run()
    {
        
        char [] buf= new char[100];
        try {
            int len = in.read(buf);
            int i=0;
            System.out.print("the following message comes from sender:\n"+new String(buf,0,len));
            if(buf[i] != ' '){
                System.out.print(buf[i]);
                i++;
                }
            in.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

链接输入端口和输出端口:



    import java.io.IOException;

import java.io.PipedReader;
import java.io.PipedWriter;


    public class pipedstreamtest{
        public static void main(String[] args){
        Sender t1 = new Sender();
        Receiver t2 = new Receiver();
        PipedWriter out = t1.getOutputStream();
        PipedReader in = t2.getInputStream();
        try {
            out.connect(in);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        t1.start();
        t2.start();
        }
        
    
}