Trang chủ » Blog » Những kiến thức học lập trình mạng với java Socket cơ bản nhất

Những kiến thức học lập trình mạng với java Socket cơ bản nhất

bởi CodeGym | 27/12/2023 11:27 | Blog

Học lập trình mạng với Java cơ bản nhất. Khi nói về các khái niệm về lập trình mạng. Thì khi các chương trình được thực hiện trực tiếp trên các thiết bị máy tính. Nó được kết nối với nhau. Đó là nhờ các thuật ngữ Java này. Nhưng muốn kết nối được các chương trình với nhau thì chúng ta phải nhờ đến lập trình mạng Socket. Vậy lập trình mạng Socket là gì?

Lập trình mạng với Java Socket là gì?

Học lập trình mạng java Socket

Học lập trình mạng java Socket

Khi học lập trình mạng với Java thì các lớp URL và URL Connections cung cấp một cơ chế high – level. Nó dùng để truy cập các tài nguyên trên internet. Nhưng đôi khi các chương trình của các bạn lập trình ra yêu cầu giao tiếp với nhau qua một mạng nội bộ nào đó.

Có thể là khi đó bạn đang viết một ứng dụng Client – sever. Nó cung cấp cho bạn một số dịch vụ như xử lý các truy vấn CSDL hoặc là những giá cổ phiếu hiện tại. Còn Client nó sử dụng những dịch vụ được cung cấp bởi sever hoặc là hiển thị những kết quả truy vấn của cơ sở dữ liệu. Nó cho người dùng đặt ra những vấn đề cho nhà đầu tư một cách nhanh nhất. Khi có sự giao tiếp xảy ra giữa client và sever thì bắt buộc đây phải là một nội dung đáng tin cậy. Nó không có dữ liệu nào có thể bị biến mất. Và về phía client thì các dữ liệu phải được sắp xếp theo thứ tự vốn có của nó.

Như vậy, chúng ta có thể hiểu Socket là một điểm cuối của các liên kết truyền thông hai chiều giữa hai chương trình chạy song song trên mạng. Các lớp này được sử dụng để biểu diễn kết nối giữa client với server. Các socket cung cấp những kỹ thuật giao tiếp giữa hai máy tính sử dụng TCP. Một chương trình Client tạo một Socket trên đầu cuối của giao tiếp đó. Nó cố gắng kết nối những socket đó với một sever khác.

Học lập trình mạng Java Socket

Khi kết nối được tạo ra thì những sever tạo được một đối tượng socket trên cả điểm đầu với điểm cuối của giao tiếp. Khi đó Client và sever có thể giao tiếp với nhau bằng việc ghi từ socket và đọc nó. Vậy nên để có thể đọc chúng một cách tốt nhất thì khi học lập trình mạng Java Socket bạn nên lưu ý những điều sau đây:

Những gì sẽ sảy ra khi thành lập những kết nối TCP giữa hai máy tính bằng Socket

Khi sever đã được khởi tạo. Thì đối tượng Sever Socket sẽ được biểu thị số hiệu qua một cổng port để xuất hiện sự giao tiếp. Những sever này được gọi là những phương thức accept của các lớp socket. Những phương thức này sẽ phải đợi cho tới khi có một client kết nối với một sever trên cổng đã cho từ đầu. Và sau khi sever đang đợi để kết nối thì ở client sẽ phải khởi tạo một đối tượng socket. Nó sẽ là thành phần quyết định nên tên của sever và số hiệu cổng kết nối với nó.

Phần constructor của lớp socket này sẽ phải cố gắng kết nối với client tới các sever và những số hiệu cổng đã định sẵn. Nếu như việc giao tiếp được thành lập thì client sẽ có thêm một đối tượng socket có khả năng giao tiếp với sever. Và sau khi các kết nối được thành lập thì giao tiếp lúc này có thể sử dụng được. Mỗi Socket có một Output Stream và input. Nó được kết nối với input của sever. Và các input của client được kết nối với output của sever.

Khi bạn học lập trình mạng java. Bạn sẽ không thể bỏ qua TCP được. TCP là một giao thức hai chiều bởi những dữ liệu có thể được gửi qua hai luồng dữ liệu cùng một thời điểm.

// File Name GreetingClient.java
import java.net.*;
import java.io.*;

public class GreetingClient {

   public static void main(String [] args) {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try {
         System.out.println("Connecting to " + serverName + " on port " + port);
         Socket client = new Socket(serverName, port);
         
         System.out.println("Just connected to " + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         
         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         
         System.out.println("Server says " + in.readUTF());
         client.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Quá trình thiết lập lập trình socket trong Java

Học lập trình mạng java Socket

Học lập trình mạng java Socket

Trong quá trình học lập trình mạng java thì khi thực hiện các bước kết nối giữa máy khách và máy chủ bạn sẽ phải xử lý tất cả các gói mạng java API. Vậy nên tiếp theo tôi sẽ hướng dẫn bạn xử lý những vấn đề này.

Lập trình bên phía máy khách

Thiết lập ổ cắm: Để dễ dàng kết nối với những máy khách khác thì bạn cần kết nối máy với ổ cắm. Khi kết nối phần ổ cắm có nghĩa là khi máy khách có thông tin về vị trí mạng như địa chỉ IP hay cổng TCP. Để thiết lập máy chủ bạn cần phải chú ý tới 2 đối số sau:

  • Đối số thứ nhất là địa chỉ IP của máy chủ.
  • Đối số thứ hai là công TCP.

Tiếp theo chúng ta không thể bỏ qua phần giao tiếp. Để giao tiếp thì bạn cần phải sử dụng ổ cắm để kết nối. Các luồng được sử dụng cho cả đầu vào và đầu ra của dữ liệu.

Đóng kết nối: Khi kết nối ổ cắm được đóng rõ ràng sau khi tin nhắn của bạn được gửi đến máy chủ. Trong chương trình, Client sẽ tiếp tục đọc dữ liệu đầu vào của người dùng. Khi được gửi tới máy chủ cho tới khi nó được nhập vào Over Over.

Lập trình bên phía máy chủ

Để viết được ứng dụng cho máy chủ thì bạn cần sử dụng hai ổ cắm. Về phía sever Socket chờ phía bên máy khách. Bên máy khách bạn cần phải tạo ra một socket mới. Còn một ổ cắm nữa bạn có thể dùng để liên lạc với khách hàng.

Về việc giao tiếp với máy khách. Thì bạn nên sử dụng phương thức Get Output Stream. Bạn nên sử dụng đầu cắm để truyền dữ liệu.

Khi đóng kết nối dữ liệu: Bạn nên nhớ phải đóng tất cả các kết nối bằng cách đóng ổ cắm cũng như các luồng đầu vào cũng như đầu ra của dữ liệu.

Trên đây là những điều bạn nên lưu ý khi học lập trình mạng với Java. Khi lập trình mạng java bạn nên thật cẩn thận trong việc giao tiếp và truyền dữ liệu. Và để chạy được các ứng dụng trên máy khách và máy chủ trên máy của bạn. Thì  bạn phải phiên dịch cả hai ngôn ngữ ở hai máy. Sau đó bạn mới nên chạy ứng dụng máy chủ. Tiếp sau thì bạn hãy nên chạy máy khách.

Tham khảo khóa học lập trình Java tại: https://codegym.vn/khoa-hoc-java/

Download - Giáo trình thuật toán

11 + 10 =

Tags: JAVA

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

10 + 4 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM