Ví dụ1: Viết chương trình mô phỏng Client-Server
- Client gửi cho Server 1 xâu ký tự (nhập từ bàn phím), chờ nhận xâu kết quả từ Server rồi in ra màn hình.
- Server nhận xâu ký tự từ Client, đổi xâu đó ra chữ hoa, gửi kết quả lại cho Client.
*/
// --------------------------------------------------------------------------------------------
// Class Sever
package pipedecho;
import java.io.*;
public class PipedEchoServer extends Thread
{
PipedInputStream readPipe;
PipedOutputStream writePipe;
int ch;
// khoi tao
public PipedEchoServer(PipedInputStream readPipe, PipedOutputStream writePipe)
{
this.readPipe = readPipe;
this.writePipe = writePipe;
System.out.println("Server is starting . . .");
}
// nhan du lieu tu client
public void Nhan_DuLieu_Tu_Client(){
try {
ch = readPipe.read();
} catch (IOException ex) {
System.out.print(" Co loi xay ra: "+ex.toString());
}
}
//gui ket qua da xu ly cho client
public void Gui_QK_Cho_Client(){
try {
writePipe.write(ch);
} catch (IOException ex) {
System.out.print(" Co loi xay ra: "+ex.toString());
}
}
// Doi chu thuong thanh chu hoa
public void DoiChu(){
ch = Character.toUpperCase((char)ch);
}
public void run()
{
while(true) {
Nhan_DuLieu_Tu_Client();
DoiChu();
Gui_QK_Cho_Client();
}
}
}
// --------------------------------------------------------------------------------------------
// Class Client
package pipedecho;
import java.io.*;
public class PipedEchoClient extends Thread {
PipedInputStream readPipe;
PipedOutputStream writePipe;
int ch;
public PipedEchoClient(PipedInputStream readPipe, PipedOutputStream writePipe){
this.readPipe = readPipe;
this.writePipe = writePipe;
System.out.println("Client creation");
}
// doc 1 ky tu tu ban phim, gui ky tu do cho server
public void Gui_Server(){
try {
ch=System.in.read();
writePipe.write(ch);
} catch (IOException ex) {
System.out.print(" Co loi xay ra: "+ex.toString());
}
}
// nhan 1 ky tu tu server
public void Nhan_KQ_Tu_Server() {
try {
ch = readPipe.read();
} catch (IOException ex) {
System.out.print(" Co loi xay ra: "+ex.toString());
}
}
// In ket qua nhan duoc
public void InKetQua(){
System.out.print((char)ch);
}
// thuc thi
public void run()
{
while(true) {
Gui_Server();
Nhan_KQ_Tu_Server();
InKetQua();
}
}
}
// --------------------------------------------------------------------------------------------
// Class Main
// Class Main
package pipedecho;
import java.io.*; 
public class PipedEcho { 
    public static void main(String argv[]){ 
        try{   
            PipedOutputStream cwPipe = new PipedOutputStream(); 
            PipedInputStream crPipe = new PipedInputStream(); 
            PipedOutputStream swPipe = new PipedOutputStream(crPipe); 
            PipedInputStream srPipe = new PipedInputStream(cwPipe); 
            PipedEchoServer server = new PipedEchoServer(srPipe,swPipe); 
            PipedEchoClient client = new PipedEchoClient(crPipe,cwPipe); 
            server.start();
            client.start();
        } catch(IOException ie) { 
            System.out.println("Pipe Echo Error:"+ie); 
        }
    }
}
// Chú ý: Tạo 3 class trong cùng 1 project (PipedEcho)
Một số tài liệu và khoá học bổ ích dành cho bạn:
# Tài liệu: Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu học lập trình [Click để xem]
# Khoá học online: Lập trình Java trong 4 tuần [Click để xem]