Chuyển một số sang hệ Hexa-Decimal – Lập trình Socket TCP

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

kiểm tra n được gửi từ Client có phải là số hoàn hảo

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 ServerSocketaccept 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

Chuyển đổi số sang số la mã

Lớp URL trong java

InetAddress trong java

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em