Hướng dẫn lập trình Client-Server bằng Java.



Bây giờ, tôi sẽ hướng dẫn các bạn làm một ứng dụng java client-server cụ thể:

Nhập 2 số a và b từ client, gửi lên server để tính tổng 2 số đó rồi gửi lại kết quả về client, client in ra màn hình - dùng giao thức TCP.

Đây là ứng dụng tiền đề để các bạn xây dựng những ứng dụng cao cấp hơn.

Đầu tiên, các bạn tạo 1 project giống như những bài trước (ở đây tôi xài eclipse).

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Tạo dự án cộng hai số thao tác giữa client-server. 

Tạo class với tên Client.java

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Click vào dự án và tạo lớp mới 

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Tạo lớp client.java đại diện cho phía người dùng 

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Code trong file client.java


Client.java

PHP Code:
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;

public class 
Client {
    public static 
void main(String []argsthrows IOException
    
{
        
// khoi tao 3 bien kieu String
        
String a,b,tong;
        
//tao socket de ket noi toi server
        
Socket ClientSocket = new Socket("Localhost"1234);
        
//thong bao da ket noi thanh cong
        
System.out.println("Connected to server");
        
//tao luong nhap du lieu tu ban phim
        
DataInputStream inFromUser = new DataInputStream(System.in);
        
//tao luong nhan du lieu tu server
        
DataInputStream inFromServer = new DataInputStream(ClientSocket.getInputStream());
        
//tao luong gui du lieu len server
        
DataOutputStream outToServer = new DataOutputStream(ClientSocket.getOutputStream());
        
// nhap lieu tu ban phim
        
try{
            
System.out.println("nhap vao so a :");
            
a=inFromUser.readLine();
            
System.out.println("nhap vao so b :");
             
b=inFromUser.readLine();
            
// gui len server
             
outToServer.writeBytes(a+'\n');
            
outToServer.writeBytes(b+'\n');
        }catch(
UnknownHostException e)
        {
            
System.err.println("Server Not Found");
            
System.exit(1);
        }catch(
IOException e)
        {
            
System.err.println("Cannot make a connection");
            
System.exit(1);
        }

        
//nhan ve tu server
        
tong=inFromServer.readLine();
        
//in ra man hinh
        
System.out.println("Tong 2 chu so a va b la :"+tong);
        
//dong luong gui du lieu len server
        
outToServer.close();
        
//dong luong nhan du lieu tu server
        
inFromServer.close();
        
//dong socket client
        
ClientSocket.close();
    }

}  

Tiếp tục tao class thứ 2 với tên Server.java với nội dung sau:

Server.java

PHP Code:
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;

public class 
Server {
    public static 
void main(String []argsthrows IOException
    
{
        
String so1,so2,so3;
        
int tong;
        
// tao server socket
        
ServerSocket server = new ServerSocket(1234);
        
System.out.println("Server is now already");
        
//tao 1 socket do ket noi tu client toi server
        
Socket connectionSocket server.accept();
        
//tao luong nhan du lieu tu client
        
DataInputStream inFromClient = new DataInputStream(connectionSocket.getInputStream());
        
// tao luong gui du lieu toi client
        
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
        
// truyen du lieu tu client vao 2 bien so1 va so2
        
so1 inFromClient.readLine();
        
so2 inFromClient.readLine();
        
//ep so1 va so2 tu kieu String sang kieu Integer
        
int a Integer.parseInt(so1);
        
int b Integer.parseInt(so2);
        
//tinh tong a + b
        
tong b;
        
//ep tong 2 so a+b sang kieu String
        
so3 String.valueOf(tong);
        
//gui so3 ve client
        
outToClient.writeBytes(so3+'\n');
        
//dong luong nhan du lieu tu client
        
inFromClient.close();
        
//dong luong gui du lieu ve client
        
outToClient.close();
        
//dong server socket
        
server.close();
    }

}  
Bây giờ chạy thử nhé ứng dụng java vừa tạo.

Đầu tiên, khởi động server trước, nếu thấy thông báo "server is now already" là server đã sẵn sàng để nhận kết nối từ phía client.

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Thông báo server đã sẵn sàng 

Tiếp tục khởi động bên Client, bạn sẽ thấy thông báo nhập vào số a, nhập số 5.

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Nhập giá trị cho số a 

Nhập tiếp số b, enter

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Nhập giá trị cho số b 

Lúc này, a và b được gửi lên server, sau đó, client nhận được kết quả tổng và xuất thông báo lên màn hình.

hướng dẫn lập trình mạng java, lập trình mạng java client-server, ứng dụng java client-server.,
Kết quả được trả về client sau khi được sử lý tại server

 Đây là một ứng dụng đơn giản thực hiện thao tác giao tiếp giữa client với server. Ở những bài đăng sau tôi sẽ giúp các bạn thực hiện ứng dụng chat trong java.

(nguồn: goccay.vn) 

6 comments:

  1. anh ơi hướng dẫn bài "chát" trong java thực hiện thao tác client-server đi ạ !

    ReplyDelete
  2. Chao Ban, Toi can tim nguoi chuyen lam ebook app voi eclipse, java ... neu biet xin gioi thieu dum. email: khanmtruong@gmail.com hoac dt: 0933 999 724. Cam on ban

    ReplyDelete
  3. bạn có thể tạo jfarm với bài trên không?

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. anh oi anh huong dan bai nhap 4 phep toan luon nha a

    ReplyDelete
  6. anh oi anh huong dan bai nhap 4 phep toan luon nha a

    ReplyDelete