Trong bài này
14/07/2023
Socket là một trong các khái niệm quan thuộc với lập trình viên, có cách thức hoạt động tương tự như một tập tin descriptor cấp thấp. Vậy, Socket là gì? Có những loại Socket nào và chúng hoạt động như thế nào? Giữa Socket và giao thức TCP/IP có mối liên hệ ra sao? Cùng tìm hiểu qua bài viết bên dưới để giải đáp những câu hỏi này.

Socket là điểm cuối (endpoint) trong cách thức liên kết giao tiếp 2 chiều (two-way communication). Chúng thường dùng để biểu diễn cách thức kết nối giữa Server và Client. Hiện nay, Socket được liên kết với 1 cổng Port cụ thể, cho phép các tầng lớp TCP có thể định danh dữ liệu được gửi đến từ ứng dụng.
Có thể nói, Socket là một giao diện lập trình ứng dụng mạng, cho phép chúng ta gửi và nhận dữ liệu trong môi trường Internet. Giữa 2 chương trình trong Internet cần có sự kết nối 2 chiều để trò chuyện và giao tiếp với nhau. Điểm cuối của sự kết nối này có thể gọi là Socket.
Trong kiến trúc của một máy tính có bao gồm bộ Unix Adapter. Một hệ thống cơ sở dữ liệu có vai trò đáp ứng yêu cầu gửi đến từ khách hàng. Socket được sử dụng bởi đa số các bộ router xác thực đầu vào, ví dụ như FTP (File Transfer Protocol), POP3 hoặc là SMTP (Simple Mail Transfer Protocol), nhằm mục đích tạo ra sự kết nối giữa người gửi và người nhận, phục vụ mục đích trao đổi thông tin.
Như đã trình bày ở phần Socket là gì trên, Socket có chức năng kết nối các Server và Client dựa trên giao thức TCP/IP và UDP, nhằm mục đích gửi và nhận dữ liệu trên Internet. Socket có thể hoạt động khi có thông số IP và tên Port của 2 ứng dụng đang cần gửi / nhận dữ liệu với nhau.
Dưới đây là điều kiện cần đó để Socket hoạt động:
Socket được chia thành 4 loại phổ biến, bao gồm:
Websocket giúp hỗ trợ việc kết nối qua lại giữa Server và Client trên Internet được hiệu quả và nhanh chóng hơn. Chúng hoạt động thông qua giao thức TCP Socket. Websocket có thể được sử dụng trong Web hoặc bất kỳ các ứng dụng nào cần sự trao đổi dữ liệu trong môi trường Internet.
Ưu điểm của Websocket:
Nhược điểm của Websocket:
Stream Socket có thể được hiểu là Socket hướng kết nối. Chúng hoạt động dựa trên giao thức TCP và chúng chỉ hoạt động khi máy chủ và máy khách đã kết nối với nhau.
Ưu điểm của Stream Socket:
Nhược điểm của Stream Socket:
Datagram Socket là Socket không hướng kết nối, được hoạt động thông qua giao thức UDP (User Datagram Socket). Loại hình Socket có thể hoạt động ngay cả khi máy chủ và máy khách chưa kết nối với nhau.
Ưu điểm của Datagram Socket:
Nhược điểm của Datagram Socket:
Unix Socket giúp cho việc trao đổi dữ liệu giữa các ứng dụng khác nhau trên cùng một máy tính được nhanh chóng và nhẹ hơn. Tất cả các hoạt động của Unix Socket đều diễn ra bên trong hệ điều hành, mang lại hiệu quả cao hơn. Quá trình truyền dữ liệu trên Unix Socket cũng được đảm bảo, vì chúng tránh được routing hoặc các lớp kiểm tra khác.
Ưu điểm của Unix Socket:
Nhược điểm của Unix Socket:
Có thể thấy, TCP/IP và UDP có vai trò cực kỳ quan trọng trong việc hỗ trợ Socket hoạt động. Cùng tìm hiểu kỹ hơn về TCP/IP và UDP:
package org.o7planning.tutorial.socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleServerProgram {
public static void main(String args[]) {
ServerSocket listener = null;
String line;
BufferedReader is;
BufferedWriter os;
Socket socketOfServer = null;
// Mở ServerSocket tại cổng 9999.
// Chú ý bạn không thể chọn cổng nhỏ hơn 1023 nếu không là người dùng
// đặc quyền (privileged users (root)).
try {
listener = new ServerSocket(9999);
} catch (IOException e) {
System.out.println(e);
System.exit(1);
}
try {
System.out.println("Server is waiting to accept user...");package org.o7planning.tutorial.socket;
import java.io.*;
import java.net.*;
public class SimpleClientDemo {
public static void main(String[] args) {
// Địa chỉ máy chủ.
final String serverHost = "localhost";
Socket socketOfClient = null;
BufferedWriter os = null;
BufferedReader is = null;
try {
// Yêu cầu kết nối với Server nhận dữ liệu
// trên máy 'localhost' cổng 9999.
socketOfClient = new Socket(serverHost, 9999);
// Tạo luồng để gửi dữ liệu từ Client đến Server
os = new BufferedWriter(new OutputStreamWriter(socketOfClient.getOutputStream()));
// Tạo luồng để nhận dữ liệu từ Server
is = new BufferedReader(new InputStreamReader(socketOfClient.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host " + serverHost);
return;
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to " + serverHost);
return;Trên đây là các thông tin chi tiết về Socket là gì, cách hoạt động cũng như phân loại các Socket phổ biến nhất. Nhìn chung, Socket là một trong các ứng dụng quan trọng mà chúng ta cần dùng, đặc biệt là các nhà phát triển Website. Mời bạn tiếp tục theo dõi blog tại CMC Cloud để cập nhật thêm các bài viết công nghệ liên quan khác.
CMC Cloud - Giải pháp Điện toán đám mây Toàn diện & Linh hoạt nhất. Cho phép tùy biến sử dụng và quản trị 25+ dịch vụ
CMC Cloud tiếp tục duy trì chứng nhận PCI DSS v4.0.1: Khẳng định năng lực bảo mật trong giai đoạn thực thi toàn diện
CMC Telecom vinh dự nhận giải thưởng “VCSP Rising Star Partner 2026” từ Veeam
Sao lưu bất biến: Gia cố năng lực phục hồi trước tấn công dữ liệu
Khi dữ liệu nhạy cảm không thể rời khỏi doanh nghiệp
AI đã "xoay trục" hạ tầng Cloud như thế nào?
Bài viết liên quan
Cùng chuyên mục
Sao lưu bất biến: Gia cố năng lực phục hồi trước tấn công dữ liệu
20/03/2026
Giải pháp CMC Cloud S3 Storage không chỉ là không gian lưu trữ, mà là công cụ thực thi chiến lược bảo vệ dữ liệu chủ động với tính năng Object Lock trên CMC Cloud, giúp gia cố năng lực phục hồi trước tấn công dữ liệu.
Khi dữ liệu nhạy cảm không thể rời khỏi doanh nghiệp
17/03/2026
Những rào cản về bảo mật, tính tuân thủ và chủ quyền dữ liệu buộc nhiều hệ thống cốt lõi phải duy trì trong hạ tầng riêng biệt. Trong bối cảnh đó, Hybrid Cloud nổi lên như một mô hình chiến lược, giúp tổ chức vừa bảo vệ tài sản dữ liệu quan trọng, vừa tận dụng sức mạnh xử lý của các nền tảng Cloud hiện đại.
Bạn muốn cập nhật thông tin mới nhất từ CMC Cloud?! Hãy để lại địa chỉ email của bạn ngay để nhận những bản tin bổ ích
Điều khoản & Chính sách