- vừa được xem lúc

Lập trình mạng với Java Swing + Socket

0 0 154

Người đăng: Nguyễn Văn Bảo

Theo Viblo Asia

Xin chào mọi người trong bài này mình sẽ hướng dẫn các bạn thiết kế ra 1 form đơn giản có gửi nhận dữ liệu với Java Swing + Socket, IDE mình sử dụng là Eclipse mọi người nhé.

1. Cài đặt windowbuilder để lập trình giao diện Java Swing

Để cài đặt được windowbuilder trên Eclipse ta chọn Help -> Eclipse Marketplace Sau đó trên thanh tìm kiếm ta gõ tìm "windowbuilder" và nhấn cài đặt. Ở đây mình đã cài đặt rồi nên trạng thái hiển thị sẽ là Installed Sau khi đã cài đặt xong khi tạo mới 1 file ta nhấn vào package New -> Other Tiếp theo ta tìm đến WindowBuilder -> Swing Designer -> JFrame

Ta đặt tên cho file rồi nhấn Finish

Để có thể kéo thả ta chuyển sang tab Designer . Tại đây có rất nhiều thành phần, mọi người có thể lên mạng đọc thêm về các dùng ở đây mình sẽ đi qua nhanh về luồng từ dàn giao diện và kết nối với socket, đầu tiên layout mình sẽ chọn là GridBagLayout, tiếp đó mình kéo thêm 2 JLabel, 1 JtextFeild, 1 JButton Ta click vào từng phần tử để đặt Variable cho dễ thao tác và xử lý trong code Để gán sự kiện click chuột cho nút gửi ta nhấn chuột phải vào nút gửi -> Add event handler -> mouse -> mouseClicked Vầy là đã xong phần giao diện và gán sự kiện đơn giản. Tiếp theo ta sẽ xử lý phần code

2. Socket

2.1. Luồng truyền nhận dữ liệu

2.2. Khởi tạo đầu server

 ServerSocket server_socket = new ServerSocket(6543); /// Khởi tạo Socket và chấp nhận kết nối từ đối tượng Socket Server. Socket socket = server_socket.accept(); /// Tạo luồng đọc dữ liệu vào từ client DataInputStream din = new DataInputStream(socket.getInputStream()); // Tạo luồng in dữ liệu trả ra cho client DataOutputStream dout = new DataOutputStream(socket.getOutputStream());

2.3. Nhận tin và phản hồi

// Vòng lặp nghe dữ liệu từ client
while (true) {
try { String str_in = din.readUTF(); System.out.println("client says: " + str_in); // Trả về kết quả dout.writeUTF("Server Received Data:"+str_in); dout.flush(); } catch (IOException e1) { // TODO Auto-generated catch block status = false; e1.printStackTrace(); }
}

2.4. Client kết nối và gửi tin

Socket client = new Socket("localhost",6543);
DataOutputStream dout = new DataOutputStream(client.getOutputStream());
DataInputStream din = new DataInputStream(client.getInputStream());
try { String message = txtNoiDung.getText().toString(); dout.writeUTF(message); String output = din.readUTF(); lbKq.setText(output);
} catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace();
}

3. Source Code

Link: https://github.com/baonv-dev/socket_java_swing

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lập trình socket bằng Python

Socket là gì. Một chức năng khác của socket là giúp các tầng TCP hoặc TCP Layer định danh ứng dụng mà dữ liệu sẽ được gửi tới thông qua sự ràng buộc với một cổng port (thể hiện là một con số cụ thể), từ đó tiến hành kết nối giữa client và server.

0 0 56

- vừa được xem lúc

Django channels hướng dẫn cơ bản

Giới thiệu. Channels kết hợp hỗ trợ chế độ xem không đồng bộ gốc của Django, cho phép các dự án của Django xử lý không chỉ HTTP mà còn các giao thức yêu cầu kết nối lâu dài - WebSockets, MQTT, chatbot

0 0 55

- vừa được xem lúc

Basic Socket Programming

1. Struct address. 1.1.

0 0 15

- vừa được xem lúc

MOSH: Kẻ hủy diệt SSH

Lời nói đầu. Lời đầu tiên xin được xin chào cả nhà, đã lâu lắm rồi mình không viết blog nay May Fest mà người iu mình thích cái áo viblo quá nên xin phép nổ phát súng trên Viblo về Mosh - thứ khá hay

0 0 126

- vừa được xem lúc

Vòng đời và trạng thái của Thread

A. Giới thiệu.

0 0 116

- vừa được xem lúc

Giải quyết vấn đề N+1 trong quan hệ cha - con vô tận bằng Eager Loading

Vấn đề. Trong khi phát triển ứng dụng, chắc hẳn các bạn đã gặp phải trường hợp đệ quy cha-con trong khi phát triển các dự án, ví dụ như cây thư mục như sau:.

0 0 171