Lập trình mạng là gì? Các kiến thức về lập trình mạng với Java

By 06/06/2021Tháng Sáu 9th, 2021Java, KIẾN THỨC LẬP TRÌNH

Lập trình mạng là gì chính là câu hỏi nhận được khá nhiều nhiều câu trả lời trái chiều xoay quanh chủ đề này.

Nếu bạn đang có thắc mắc tương tự thì ắt hẳn bài viết dưới đây chính là một gợi ý giúp bạn hiểu rõ hơn về những kiến thức cơ bản nhất về lập trình mạng.

I. Lập trình mạng là gì?

Hiện nay, có rất nhiều công việc cần sử dụng đến các ứng dụng phần mềm.

Ví dụ như để đơn giản hóa công việc kế toán, kiểm toán, các doanh nghiệp đã sử dụng các phần mềm kế toán thông dụng như Misa, Bravo, Fast, Simba,…

Nhờ sử dụng chúng, việc nhập dữ liệu diễn ra dễ dàng, cập nhật các quy định nhanh chóng và quản lý thu chi hiệu quả hơn.

Ngoài ra, còn có một số chương trình ứng dụng mạng tiêu biểu khác như các trò chơi, điều khiển, quản lý,….

Dưới đây chính là công thức thường được sử dụng nhất để định nghĩa về lập trình mạng:

LTM = KTM + MH + NN

Trong đó:

Ký hiệu trong công thức Diễn giải
LTM Lập trình mạng
KTM Kiến thức mạng truyền thông (mạng máy tính, PSTN,…)
MH Mô hình lập trình mạng (mạng LAN, Mạng diện rộng WAN, Mạng đô thị MAN, Mạng cá nhân PAN,…)
NN Ngôn ngữ lập trình mạng (Java .NET; C/C++; Delphi; Javascript.,…)

Hay nói cách khác, lập trình mạng liên quan đến khá nhiều loại kiến thức.

Chẳng hạn cách sử dụng ngôn ngữ lập trình, hệ thống mạng, cách xây dựng các phần mềm ứng dụng, mạng di động, hệ thống định vị GPS,…..

Hình vẽ dưới đây sẽ thể hiện 3 vấn đề cốt lõi của lập trình ứng dụng mạng

lập trình mạng

3 yếu tố chính của lập trình ứng dụng mạng

II. Ngôn ngữ lập trình mạng

Bạn có thể sử dụng tất cả các ngôn ngữ lập trình để lập trình mạng.

Tuy nhiên, không có một ngôn ngữ nào là tối ưu và tốt nhất. Bởi tất cả các ngôn ngữ lập trình đều có những ưu và nhược điểm khác nhau.

Bên cạnh đó, mỗi ngôn ngữ lập trình cũng nhận được sự hỗ trợ từ thư viện API ở nhiều mức độ khác nhau.

Để lựa chọn ngôn ngữ lập trình mạng, bạn hãy cân nhắc đến các yếu tố như sau: ứng dụng mạng, hệ điều hành và thói quen sử dụng ngôn ngữ của chính mình.

Một số ngôn ngữ lập trình mạng thông dụng hiện nay:

  • Hợp ngữ (Assembly Language)
  • C/C++
  • Visual C++, VB, Delphi
  • Java
  • .NET
  • ASP
  • Javascript

Vài năm trước đây, .NETJava. là 2 ngôn ngữ lập trình được các lập trình viên sử dụng nhiều nhất.

Thế nhưng, từ khi Javascript ra đời, xuất hiện xu hướng lập trình Full-Stack thay thế các kiểu lập trình truyền thống như front-end hay back-end.

III. Các lớp mạng trong lập trình mạng Java

Java là một ngôn ngữ lập trình hàng đầu được sử dụng để lập trình.

Gói java.net đóng gói một lượng lớn các lớp và giao diện cung cấp phương tiện dễ sử dụng để truy cập vào các tài nguyên mạng.

Dưới đây là một số lớp và giao diện quan trọng của gói java.net.

Bảng liệt kê các lớp mạng java

Các lớp
CacheRequest CookieHandler
CookieManager Datagrampacket
Inet Address ServerSocket
Socket DatagramSocket
Proxy URL
URLConnection

Giao diện mạng Java

Bảng liệt kê giao diện mạng Java

Giao diện
CookiePolicy CookieStore
FileNameMap SocketOption
InetAddress ServerSocket
SocketImplFactory ProtocolFamily

InetAddress

InetAddress đóng gói cả địa chỉ IP số và tên miền cho địa chỉ đó.

InetAddress có thể xử lý cả địa chỉ IPv4 và địa chỉ Ipv6. Lớp InetAddress không có hàm tạo hiển thị.

Để tạo ra một đối tượng InetAddress, bạn phải sử dụng các phương thức Factory (một design pattern thuộc nhóm khởi tạo) .

Ba phương thức Factory của InetAddress được sử dụng phổ biến nhất chính là:

  • InetAddress getLocalHost() tĩnh chuyển vào UnknownHostException
  • InetAddress getByName tĩnh (String hostname) chuyển vào UnknownHostException
  • InetAddress[ ] getAllByName tĩnh (String hostname) chuyển vào UnknownHostException
lập trình mạng java

Các lớp con của lớp InetAddress

Các lớp con của lớp InetAddress

Ví dụ về việc sử dụng lớp InetAddress:

import java.net.*;

class Demo

{

public static void main(String[] args) throws UnknownHostException

{

InetAddress address = InetAddress.getLocalHost();

System.out.println(address);

address = InetAddress.getByName(“www.studytonight.com”);

System.out.println(address);

InetAddress sw[] = InetAddress.getAllByName(“www.google.com”);

for(int i=0; i< sw.length; i++)

{

System.out.println(sw[i]);

}

}

}

Đầu ra

Welcome-PC/59.161.87.227

www.studytonight.com/208.91.198.55

www.google.com/74.125.236.115

www.google.com/74.125.236.116

www.google.com/74.125.236.112

www.google.com/74.125.236.113

www.google.com/74.125.236.114

www.google.com/2404:6800:4009:802:0:0:0:1014

Lớp Socket và ServerSocket

Chắc các bạn đã nghe qua cụm từ lập trình socket Java thì Socket là nền tảng của mạng hiện đại. Socket cho phép một máy tính đơn lẻ cùng một lúc phục vụ nhiều máy khách khác nhau.

Socket thiết lập kết nối thông qua việc sử dụng cổng – là một socket được đánh số trên một máy cụ thể.

Giao tiếp socket diễn ra thông qua giao thức. Socket cung cấp cơ chế giao tiếp giữa hai máy tính sử dụng TCP.

Trong lập trình mạng java, có hai loại socket TCP. Một cái dành cho máy chủ và một cái dành cho máy khách.

  • ServerSocket dành cho máy chủ
  • Socket class dành cho máy khách

Lớp URL

Lớp URL trong lập trình mạng với java hiển thị trong gói java.net, liên quan đến URL (định vị tài nguyên thống nhất) xác định hoặc định vị các tài nguyên trên Internet.

lập trình mạng với java

Các thành phần trong lớp URL

Các thành phần trong lớp URL

Các phương thức quan trọng trong lớp URL:

  • getProtocol() : trả về giao thức của URL
  • getHost() : trả về tên máy chủ(tên miền) của URL
  • getPort() : trả về số cổng của URL
  • getFile() : trả về tên tệp của URL

Công thức chạy lớp URL:

import java.net.*;

class Demo

{

public static void main(String[] arg) throws MalformedURLException

{

URL hp = new URL(“http://www.studytonight.com/index”);

System.out.println(hp.getProtocol());

System.out.println(hp.getFile());

}

}

Đầu ra

http

/index

IV. Kết luận:

Trên đây là những kiến thức tổng quan về lập trình mạng cũng như một vài ví dụ minh họa về các lớp mạng java.

Hy vọng qua những phần chia sẻ nêu trên, bạn đã phần nào hiểu rõ hơn về cách lập trình mạng với java.

Để lại một câu trả lời