Java Socket TCP Là Gì?

Socket là gì? Socket là điểm cuối (endpoint) của một kết nối mạng hai chiều giữa hai chương trình. Trong Java: ServerSocket: Dùng phía Server để chờ kết nối từ Client. Socket: Dùng phía Client để kết nối, hoặc phía Server sau khi accept kết nối. TCP là gì và tại sao quan trọng? TCP (Transmission Control Protocol) là giao thức hướng kết nối, đảm bảo: Dữ liệu đến đúng thứ tự Không mất gói tin Kiểm soát lưu lượng (flow control) Xử lý lỗi tự động Phù hợp cho các ứng dụng cần độ tin cậy cao: chat, tải file, web… ...

December 25, 2025 · 1 min · Lê Thanh Hoàng Đức

Java vs JavaScript: Đừng Nhầm Lẫn Nữa!

Rất nhiều người mới học lập trình thường nhầm lẫn giữa Java và JavaScript vì tên gọi tương tự. Thực tế, chúng hoàn toàn khác nhau – giống như “Car” và “Carpet” vậy! Meme kinh điển minh họa sự khác biệt (Nguồn: Programmer Humor) Bảng so sánh nhanh Tiêu chí Java JavaScript Ra đời 1995 bởi Sun Microsystems (nay là Oracle) 1995 bởi Brendan Eich (Netscape) Loại ngôn ngữ Biên dịch (compiled), statically-typed Thông dịch (interpreted), dynamically-typed Chạy ở đâu Trên JVM (Java Virtual Machine) – cross-platform Chủ yếu trên trình duyệt, Node.js (server) Ứng dụng chính Backend, Android app, enterprise software Frontend web, full-stack (với Node.js) Hướng đối tượng OOP nghiêm ngặt (class-based) OOP linh hoạt (prototype-based) Ví dụ framework Spring Boot, Hibernate React, Vue, Angular, Express ...

December 25, 2025 · 2 min · Lê Thanh Hoàng Đức

Mô Hình Client – Server Trong Lập Trình Mạng

Mô hình Client – Server là gì? Mô hình Client – Server là kiến trúc phổ biến nhất trong lập trình mạng, trong đó: Client: Ứng dụng khởi tạo kết nối, gửi yêu cầu (request). Server: Ứng dụng lắng nghe kết nối, xử lý yêu cầu và trả về phản hồi (response). Cách hoạt động Server khởi động và mở một port để lắng nghe. Client kết nối đến địa chỉ IP + port của Server. Sau khi kết nối thành công, hai bên có thể trao đổi dữ liệu. Kết nối có thể duy trì lâu dài hoặc đóng sau mỗi lần giao tiếp. Ưu điểm Quản lý tập trung (Server kiểm soát dữ liệu và logic chính). Dễ mở rộng (thêm nhiều Client mà không ảnh hưởng Server). Bảo mật tốt hơn (Server kiểm soát truy cập). Ví dụ thực tế Trình duyệt web (Client) ↔ Web Server Ứng dụng chat (Client) ↔ Server chat Game online multiplayer Bài tiếp theo sẽ đi sâu vào cách Java hiện thực hóa mô hình này qua Socket TCP.

December 25, 2025 · 1 min · Lê Thanh Hoàng Đức

Tổng Quan Lập Trình Mạng Với Java

Giới thiệu Lập trình mạng là một phần quan trọng trong phát triển phần mềm hiện đại. Java cung cấp bộ công cụ mạnh mẽ thông qua gói java.net để xây dựng các ứng dụng mạng đáng tin cậy. Bài viết này mở đầu cho series về lập trình mạng Java, giúp bạn hiểu rõ các khái niệm nền tảng trước khi đi sâu vào thực hành. Các khái niệm cơ bản Mô hình Client – Server: Cách phổ biến nhất để các máy tính giao tiếp qua mạng. Giao thức truyền tải: TCP (đáng tin cậy) và UDP (nhanh, không kết nối). Socket: Điểm cuối giao tiếp giữa hai chương trình qua mạng. Port: Số hiệu để định danh dịch vụ (ví dụ: HTTP dùng port 80). Tại sao chọn Java cho lập trình mạng? API Socket đơn giản, ổn định và cross-platform. Hỗ trợ đa luồng tốt (dễ xử lý nhiều client cùng lúc). Thư viện chuẩn phong phú, không cần phụ thuộc bên ngoài. Nội dung series sắp tới Mô hình Client – Server Java Socket TCP cơ bản Xây dựng TCP Client – Server đơn giản Xử lý nhiều Client với Multithreading TCP vs UDP Ứng dụng thực tế: Hệ thống chat realtime Hãy tiếp tục theo dõi để cùng xây dựng các dự án mạng thực tế bằng Java!

December 25, 2025 · 2 min · Lê Thanh Hoàng Đức

Xây Dựng TCP Client – Server Đơn Giản Với Java

Trong bài này, chúng ta sẽ xây dựng một ứng dụng TCP Client-Server đơn giản nhất để hiểu rõ cách giao tiếp mạng trong Java: Client gửi “Hello”, Server nhận và trả về “OK”. Sơ đồ minh họa Client kết nối đến Server qua Socket Mục tiêu Server lắng nghe trên port 8080 Client kết nối và gửi tin nhắn Server nhận tin, xử lý và trả phản hồi Code Server 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.io.*; import java.net.*; public class TcpServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); System.out.println("Server đang chạy trên port 8080..."); Socket clientSocket = serverSocket.accept(); System.out.println("Client đã kết nối!"); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); String message = in.readLine(); System.out.println("Nhận từ Client: " + message); out.println("OK - Server đã nhận: " + message); clientSocket.close(); serverSocket.close(); System.out.println("Kết nối đã đóng."); } }

December 25, 2025 · 1 min · Lê Thanh Hoàng Đức

Xử Lý Nhiều Client Cùng Lúc Với Multithreading

Trong bài trước, chúng ta đã xây dựng một Server TCP đơn giản chỉ xử lý được một Client tại một thời điểm. Nếu Client thứ hai kết nối, nó phải chờ đến khi Client đầu tiên ngắt kết nối. Bài này sẽ nâng cấp Server để hỗ trợ nhiều Client đồng thời bằng cách sử dụng Multithreading – một kỹ thuật rất quan trọng trong lập trình mạng. ...

December 25, 2025 · 2 min · Lê Thanh Hoàng Đức

Xử Lý Nhiều Client Cùng Lúc Với Multithreading

Trong bài trước, chúng ta đã xây dựng một Server TCP đơn giản chỉ xử lý được một Client tại một thời điểm. Nếu Client thứ hai kết nối, nó phải chờ đến khi Client đầu tiên ngắt kết nối. Bài này sẽ nâng cấp Server để hỗ trợ nhiều Client đồng thời bằng cách sử dụng Multithreading – một kỹ thuật rất quan trọng trong lập trình mạng. Sơ đồ Server TCP đa luồng xử lý nhiều Client cùng lúc (Nguồn: GeeksforGeeks) ...

December 25, 2025 · 2 min · Lê Thanh Hoàng Đức