Mở một cổng Server sau đó đợi máy khác kết nối. Nhận số nguyên từ máy khách và chuyển một số sang hệ Hexa và gửi lại phần biểu diễn hệ thập lục phân đó cho máy khách.
Xem thêm:
ứng dụng chat client server java socket
1. Mô tả bài toán
Đề bài: Sử dụng kỹ thuật lập trình với giao thức TCP, viết chương trình Java theo mô hình Client/Server. Thực hiện chuyển một số sang hệ Hexa – Decimal (hệ thập lục phân).
Video hướng dẫn chi tiết:
2. Code tham khảo
2.1 Code phía Server
– Lắng nghe và chấp nhận kết nối từ máy khách:
Mở một cổng 9555 và chờ đợi cho kết nối từ máy khách bằng cách sử dụng ServerSocket
và accept
method.
– Nhận dữ liệu từ máy khách:
Sử dụng Scanner
để đọc dữ liệu từ InputStream
của Socket
, chờ cho đến khi nhận được một dòng dữ liệu từ máy khách.
– Chuyển đổi số nguyên sang hệ thập lục phân:
Phương thức convertHexa
để chuyển đổi một số nguyên sang biểu diễn hệ thập lục phân của nó.
– Gửi kết quả trở lại cho máy khách:
Sau khi nhận dữ liệu từ máy khách và chuyển đổi nó sang hệ thập lục phân, mã sử dụng PrintWriter
để gửi kết quả trở lại máy khách thông qua OutputStream
của Socket
.
public class Server { public final static int SERVER_PORT = 9555; public static void main(String[] args) { try { System.out.println("Waiting Connect..."); //Mo cong ServerSocket serverSocket = new ServerSocket(SERVER_PORT); Socket socket = serverSocket.accept(); boolean status = socket.isConnected(); if(status){ System.out.println("Client Connected!"); //Nhan du lieu tu Client Scanner in = new Scanner(socket.getInputStream()); if(in.hasNextLine()){ String inStr = in.nextLine(); int num = Integer.parseInt(inStr); String result = convertHexa(num); //Gui du lieu ve Client PrintWriter out = new PrintWriter(socket.getOutputStream(),true); out.println(result); } }else{ System.out.println("Connect Fail!"); } } catch (Exception e) { e.printStackTrace(); } } public static String convertHexa(int num){ int rem; String str = ""; char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; while(num > 0){ rem = num %16; str = hex[rem] + str; num = num/16; } return str; } }
2.2 Code phía Client
public class Client { public final static int SERVER_PORT = 9555; public final static String SERVER_IP = "localhost"; public static void main(String[] args) { try { System.out.println("Conecting..."); Socket socket = new Socket(SERVER_IP, SERVER_PORT); boolean status = socket.isConnected(); if(status){ System.out.println("Server Connected!"); Scanner sc = new Scanner(System.in); System.out.println("Nhap: "); int num = sc.nextInt(); //Gui len server PrintWriter out = new PrintWriter(socket.getOutputStream(),true); out.println(num); //Nhan du lieu tu server Scanner in = new Scanner(socket.getInputStream()); String result = ""; result = in.nextLine(); System.out.println(result); }else{ System.out.println("Connect Fail!"); } } catch (Exception e) { e.printStackTrace(); } } }
Trên đây là chương trình chuyển đổi một số sang hệ thập lục phân từ máy khách. Cảm ơn bạn đã tham khảo bài tập lập trình mạng trên ttnguyen.net.
Bài viết liên quan:
gửi chuỗi đảo ngược cho client
Lớp URL trong java