当前位置: 代码迷 >> J2SE >> 关于i/o的一个有关问题
  详细解决方案

关于i/o的一个有关问题

热度:6357   发布时间:2013-02-25 00:00:00.0
关于i/o的一个问题
服务器主程序
Java code
package com.cfpl.q;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ServerMain {    public static void main(String[] args) throws IOException {        ServerSocket serverSocket = new ServerSocket(5000);        while (true) {            Socket socket = serverSocket.accept();            ServerReadThread sr = new ServerReadThread(socket);            ServerWriterThread sw = new ServerWriterThread(socket);            sr.start();            sw.start();        }    }}

服务器输入的线程
Java code
package com.cfpl.q;import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class ServerReadThread extends Thread {    private Socket socket;    public ServerReadThread(Socket socket) {        this.socket = socket;    }    @Override    public void run() {        try {            InputStream is = socket.getInputStream();                        while (true) {                byte[] bt = new byte[1024];                 int length = is.read(bt);                System.out.println(new String(bt,0,length));                //                BufferedReader br = new BufferedReader(new InputStreamReader(is));//                String s = br.readLine();//                System.out.println(s);            }        } catch (IOException e) {            e.printStackTrace();        }    }}

服务器输出的线程
Java code
package com.cfpl.q;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;public class ServerWriterThread extends Thread {    private Socket socket;    public ServerWriterThread(Socket socket) {        this.socket = socket;    }    @Override    public void run() {        try {            OutputStream os = socket.getOutputStream();            while (true) {                BufferedReader br = new BufferedReader(new InputStreamReader(                        System.in));                String s = br.readLine();                os.write(s.getBytes());            }        } catch (IOException e) {            e.printStackTrace();        }    }}


客户端主程序
Java code
package com.cfpl.q;import java.net.Socket;public class ClientMain {    public static void main(String[] args) throws Exception {        Socket socket = new Socket("127.0.0.1",5000);        ClientReadThread cr = new ClientReadThread(socket);        ClientWriterThread cw = new ClientWriterThread(socket);        cr.start();        cw.start();    }}

客户端输入线程
Java code
package com.cfpl.q;import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class ClientReadThread extends Thread {    private Socket socket;    public ClientReadThread(Socket socket) {        this.socket = socket;    }    @Override    public void run() {        try {            InputStream is = socket.getInputStream();            while (true) {                 byte[] bt = new byte[1024];                 int length = is.read(bt);                 System.out.println(new String(bt,0,length));//                BufferedReader br = new BufferedReader(//                        new InputStreamReader(is));//                String s = br.readLine();//                System.out.println(s);            }        } catch (IOException e) {            e.printStackTrace();        }    }}
  相关解决方案