Biết tất cả về Lập trình Socket trong Java



Lập trình Java Socket được sử dụng để giao tiếp giữa các ứng dụng chạy trên các JRE khác nhau. Lập trình Java Socket có thể là hướng kết nối hoặc không kết nối.

Lập trình socket trong được sử dụng để liên lạc giữa các ứng dụng đang chạy trên các . Nó có thể là định hướng kết nối hoặc không kết nối. Nhìn chung, socket là một cách để thiết lập kết nối giữa máy khách và máy chủ. Trong bài viết này, tôi sẽ cho bạn biết tất cả về Lập trình Socket.

Các chủ đề dưới đây được đề cập trong bài viết này:





Lập trình Socket trong Java là gì?

Lập trình socket là một cách kết nối hai nút trên mạng để giao tiếp với nhau. Một ổ cắm (nút) lắng nghe trên một cổng cụ thể tại một IP, trong khi ổ cắm liên hệ với người khác để tạo kết nối.

Giao tiếp Máy chủ Máy khách - Lập trình Socket trong Java - Edureka



Máy chủ tạo thành trình nghe ổ cắm trong khi máy khách liên hệ với máy chủ. Socket và Server Socket được sử dụng để lập trình ổ cắm hướng kết nối.

Bây giờ chúng ta hãy hiểu khái niệm cốt lõi của Lập trình Socket, tức là một socket.

Socket trong Java là gì?

ĐẾN ổ cắm trong là một điểm cuối của liên kết giao tiếp hai chiều giữa hai chương trình đang chạy trên mạng. A ổ cắm được liên kết với một số cổng để lớp TCP có thể xác định ứng dụng mà dữ liệu được gửi đến.



Điểm cuối là sự kết hợp của địa chỉ IP và số cổng. Gói trong nền tảng Java cung cấp một lớp,Ổ cắmthực hiện một mặt của kết nối hai chiều giữa chương trình Java của bạn và một chương trình khác trên mạng. Lớp nằm trên phần triển khai phụ thuộc vào nền tảng, ẩn các chi tiết của bất kỳ hệ thống cụ thể nào khỏi chương trình Java của bạn. Bằng cách sử dụng lớp thay vì dựa vào mã gốc, có thể giao tiếp qua mạng theo cách độc lập với nền tảng.

Giờ thì bạn đã biết Socket trong Java là gì, hãy tiến xa hơn và hiểu cách ứng dụng khách giao tiếp với máy chủ và cách máy chủ phản hồi lại.

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

Trong trường hợp lập trình phía máy khách, trước tiên máy khách sẽ đợi máy chủ khởi động. Sau khi máy chủ hoạt động, nó sẽ gửi các yêu cầu đến máy chủ. Sau đó, máy khách sẽ đợi phản hồi từ máy chủ. Vì vậy, đây là toàn bộ logic của giao tiếp máy khách và máy chủ. Bây giờ chúng ta hãy hiểu chi tiết về lập trình phía máy khách và phía máy chủ.

Để bắt đầu yêu cầu của khách hàng, bạn cần thực hiện theo các bước được đề cập bên dưới:

1. Thiết lập kết nối

Bước đầu tiên là thiết lập kết nối ổ cắm. Kết nối socket ngụ ý rằng hai máy có thông tin về vị trí mạng (Địa chỉ IP) và cổng TCP của nhau.

Bạn có thể tạo một Socket với sự trợ giúp của câu lệnh dưới đây:

Socket socket = new Socket (“127.0.0.1”, 5000)

  • Ở đây, đối số đầu tiên đại diện cho Địa chỉ IP của Máy chủ .

  • Đối số thứ hai đại diện cho Cổng TCP . (Nó là một con số đại diện cho ứng dụng nào sẽ chạy trên máy chủ.)

2. Giao tiếp

Để giao tiếp qua kết nối socket, các luồng được sử dụng cho cả dữ liệu đầu vào và đầu ra. Sau khi thiết lập kết nối và gửi yêu cầu, bạn cần đóng kết nối.

3. Đóng kết nối

Kết nối socket bị đóng một cách rõ ràng sau khi thông báo tới máy chủ được gửi đi.

Bây giờ, hãy xem cách viết một chương trình Java để triển khai kết nối socket ở phía máy khách.

cách sử dụng goto trong python
// Một chương trình Java cho ClientSide import java.net. * Import java.io. * public class ClientProgram {// khởi tạo các luồng đầu ra socket và đầu vào private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructor để đặt địa chỉ ip và cổng public Client (địa chỉ chuỗi, cổng int) {// thiết lập kết nối thử {socket = new Socket (address, port) System.out.println ('Connected') // lấy đầu vào từ terminal input = new DataInputStream (System.in) // gửi đầu ra tới socket out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // chuỗi để đọc thông báo từ đầu vào String line = '' // tiếp tục đọc cho đến khi nhập 'Hết' trong khi (! line.equals ('Hết')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // đóng kết nối thử {input.close () out.close () socket.close ()} catch (IOException Tôi ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Bây giờ, hãy triển khai lập trình phía máy chủ và sau đó đến đầu ra.

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

Về cơ bản, máy chủ sẽ khởi tạo đối tượng của nó và đợi yêu cầu của máy khách. Sau khi máy khách gửi yêu cầu, máy chủ sẽ liên lạc lại với phản hồi.

Để viết mã ứng dụng phía máy chủ, bạn cần hai ổ cắm và chúng như sau:

  • ĐẾN ServerSocket chờ khách hàng yêu cầu (khi khách hàng tạo một Socket mới ())

  • Cũ kỹ ổ cắm để giao tiếp với khách hàng.

Sau đó, bạn cần giao tiếp với khách hàng bằng phản hồi.

Giao tiếp

getOutputStream () được sử dụng để gửi đầu ra thông qua ổ cắm.

Đóng kết nối

Điều quan trọng là đóng kết nối bằng cách đóng ổ cắm cũng như các luồng đầu vào / đầu ra khi mọi thứ đã hoàn tất.

Bây giờ, hãy xem cách viết chương trình Java để triển khai kết nối socket ở phía máy chủ.

// Một chương trình Java cho Máy chủ nhập java.net. * Import java.io. * public class ServerSide {// khởi tạo socket và luồng đầu vào private Socket socket = null private ServerSocket server = null private DataInputStream in = null // constructor với port public Server (int port) {// khởi động máy chủ và đợi kết nối, hãy thử {server = new ServerSocket (port) System.out.println ('Máy chủ đã khởi động') System.out.println ('Đang đợi máy khách .. . ') socket = server.accept () System.out.println (' Máy khách được chấp nhận ') // lấy đầu vào từ ổ cắm máy khách in = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) Dòng chuỗi =' '/ / đọc tin nhắn từ máy khách cho đến khi gửi 'Hết' trong khi (! line.equals ('Hết')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Đang đóng kết nối') // đóng kết nối socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Server server = new Server (5000)}}

Sau khi cấu hình cả máy khách và máy chủ, bạn có thể thực thi chương trình phía máy chủ trước. Sau đó, bạn cần chạy chương trình phía máy khách và gửi yêu cầu. Ngay sau khi yêu cầu được gửi từ máy khách, máy chủ sẽ phản hồi lại. Ảnh chụp nhanh dưới đây đại diện cho cùng một.

1. Khi bạn chạy tập lệnh phía máy chủ, nó sẽ khởi động và chờ máy khách bắt đầu.

2. Tiếp theo, máy khách sẽ được kết nối và nhập yêu cầu dưới dạng một chuỗi.

tìm số lớn nhất trong một mảng

3. Khi máy khách gửi yêu cầu, máy chủ sẽ phản hồi lại.

Đó là cách bạn cần thực thi một chương trình socket trong Java. Bạn cũng có thể thực thi các chương trình này trên cửa sổ đầu cuối hoặc dấu nhắc lệnh. Tuy nhiên, vì Eclipse rất tiên tiến với các tính năng của nó, bạn có thể chỉ cần thực thi cả hai chương trình trên một bảng điều khiển.

Đây là phần cuối của bài viết về Lập trình Socket trong Java. Tôi hy vọng tôi đã làm sáng tỏ kiến ​​thức của bạn về Lập trình Socket.

Kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Chúng tôi ở đây để giúp bạn từng bước trong hành trình của bạn, để trở thành một người ngoài câu hỏi phỏng vấn java này, chúng tôi còn đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và chuyên gia muốn trở thành một Nhà phát triển Java.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết “Lập trình Socket trong Java” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.