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).
Tạo dự án cộng hai số thao tác giữa client-server.
Tạo class với tên Client.java
Click vào dự án và tạo lớp mới
Tạo lớp client.java đại diện cho phía người dùng
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 []args) throws 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
Bây giờ chạy thử nhé ứng dụng java vừa tạo.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 []args) throws 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 = a + 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();
}
}
Đầ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.
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.
Nhập giá trị cho số a
Nhập tiếp số b, enter
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.
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.
anh ơi hướng dẫn bài "chát" trong java thực hiện thao tác client-server đi ạ !
ReplyDeleteChao 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
ReplyDeletebạn có thể tạo jfarm với bài trên không?
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteanh oi anh huong dan bai nhap 4 phep toan luon nha a
ReplyDeleteanh oi anh huong dan bai nhap 4 phep toan luon nha a
ReplyDelete