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.
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.
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.
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.
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!