Rumah  >  Artikel  >  Java  >  Pengaturcaraan rangkaian dalam Java

Pengaturcaraan rangkaian dalam Java

WBOY
WBOYasal
2023-06-08 16:59:061240semak imbas

Dengan perkembangan pesat Internet, pengaturcaraan rangkaian menjadi semakin penting Sebagai bahasa pengaturcaraan yang popular, Java secara semula jadi mempunyai keupayaan pengaturcaraan rangkaian yang kukuh. Artikel ini akan memberikan pengenalan ringkas kepada pengaturcaraan rangkaian di Java.

  1. Asas

Dalam Java, pengaturcaraan rangkaian memerlukan penggunaan dua kelas penting: Socket dan ServerSocket. Kelas Socket digunakan untuk mewujudkan sambungan sisi klien, manakala ServerSocket digunakan untuk membuat sambungan sisi pelayan. Objek soket dicipta dengan menentukan alamat IP dan nombor port, manakala ServerSocket dicipta dengan menentukan nombor port tempatan.

  1. Protokol penghantaran rangkaian

Apabila melakukan pengaturcaraan rangkaian, anda perlu memahami beberapa protokol penghantaran rangkaian asas, seperti TCP/IP, UDP dan HTTP. TCP/IP dan UDP ialah dua protokol yang paling biasa digunakan. TCP/IP ialah protokol berorientasikan sambungan yang menyediakan penghantaran data yang boleh dipercayai, manakala UDP ialah protokol tanpa sambungan yang menyediakan penghantaran data yang lebih pantas. Protokol HTTP ialah protokol permintaan dan tindak balas luar talian, yang digunakan secara meluas dalam komunikasi antara pelayan web dan pelayar.

  1. Tulis program rangkaian berdasarkan protokol TCP/IP

Berikut ialah contoh program klien/pelayan mudah:

Pelanggan:

import java.net.*;
import java.io.*;
public class Client {
   public static void main(String [] args) {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try {
         System.out.println("连接到主机:" + serverName + " ,端口号:" + port);
         Socket client = new Socket(serverName, port);
         System.out.println("远程主机地址:" + 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("服务器响应: " + in.readUTF());
         client.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Sisi pelayan:

import java.net.*;
import java.io.*;
public class Server extends Thread {
   private ServerSocket serverSocket;
   
   public Server(int port) throws IOException {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run() {
      while(true) {
         try {
            System.out.println("等待客户端连接,端口号为:" + serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("远程主机地址:" + server.getRemoteSocketAddress());
            DataInputStream in = new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out = new DataOutputStream(server.getOutputStream());
            out.writeUTF("感谢连接我:" + server.getLocalSocketAddress() + "
Goodbye!");
            server.close();
         } catch (SocketTimeoutException s) {
            System.out.println("Socket timed out!");
            break;
         } catch (IOException e) {
            e.printStackTrace();
            break;
         }
      }
   }
   
   public static void main(String [] args) {
      int port = Integer.parseInt(args[0]);
      try {
         Thread t = new Server(port);
         t.start();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Program ini menunjukkan komunikasi mudah antara pelanggan dan pelayan. Apabila pelanggan berjalan, ia menghantar rentetan ke pelayan, dan pelayan bertindak balas dengan rentetan.

  1. Ringkasan

Pengaturcaraan rangkaian dalam Java boleh dilakukan menggunakan protokol seperti TCP/IP dan UDP. Apabila menulis program rangkaian, anda perlu menggunakan kelas Socket dan kelas ServerSocket.

Perkara di atas hanyalah bahagian pengenalan pengaturcaraan rangkaian di Java Terdapat banyak perkara yang memerlukan pemahaman yang mendalam tentang pengaturcaraan rangkaian, seperti penghantaran dan penerimaan paket data, pengaturcaraan rangkaian berbilang benang dan. mengakses pelayan web melalui HTTP.

Atas ialah kandungan terperinci Pengaturcaraan rangkaian dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn