Nội dung
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
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, .NET và Java. 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
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.
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.