外国大气网站设计,平面设计找图网站,怎样制作静态网站,搬家网站建设公司1 网络编程的重要性
网络编程允许Java应用程序与其他计算机或设备进行通信。这包括从简单的数据传输到复杂的分布式系统和Web服务。 2 Java网络编程的核心类
Java提供了多个类来支持网络编程#xff1a; InetAddress#xff1a;表示网络上的IP地址。 URL#xff1a;表示统…1 网络编程的重要性
网络编程允许Java应用程序与其他计算机或设备进行通信。这包括从简单的数据传输到复杂的分布式系统和Web服务。 2 Java网络编程的核心类
Java提供了多个类来支持网络编程 InetAddress表示网络上的IP地址。 URL表示统一资源定位符用于访问网络资源。 URLConnection处理从URL指定的网络资源的通信。 Socket用于TCP网络通信。 ServerSocket等待客户端连接的服务器端Socket。 DatagramSocket用于UDP网络通信。 DatagramPacket包含发送或接收数据的UDP数据包。 3 创建客户端-服务器应用
Java网络编程通常涉及创建客户端和服务器应用程序它们通过Socket进行通信。
示例代码服务器端 import java.io.*;
import java.net.*;public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(6789);System.out.println(Server is listening on port 6789);try (Socket socket serverSocket.accept()) {InputStreamReader input new InputStreamReader(socket.getInputStream());BufferedReader bufRead new BufferedReader(input);PrintWriter output new PrintWriter(socket.getOutputStream(), true);String line;while ((line bufRead.readLine()) ! null) {System.out.println(Client: line);output.println(Server: line);}}}
} 示例代码客户端 import java.io.*;
import java.net.*;public class Client {public static void main(String[] args) throws IOException {Socket socket new Socket(localhost, 6789);InputStreamReader input new InputStreamReader(socket.getInputStream());BufferedReader bufRead new BufferedReader(input);PrintWriter output new PrintWriter(socket.getOutputStream(), true);BufferedReader stdInput new BufferedReader(new InputStreamReader(System.in));String line;while ((line stdInput.readLine()) ! null) {output.println(line);System.out.println(Server: bufRead.readLine());}}
} 4 UDP通信
UDP是一种无连接的协议适用于需要快速传输但不一定要求可靠到达的场景。
示例代码UDP服务器 import java.net.*;public class UDPServer {public static void main(String[] args) throws Exception {DatagramSocket serverSocket new DatagramSocket(9876);byte[] receiveData new byte[1024];DatagramPacket receivePacket new DatagramPacket(receiveData, receiveData.length);serverSocket.receive(receivePacket);String sentence new String(receivePacket.getData(), 0, receivePacket.getLength());System.out.println(RECEIVED: sentence);serverSocket.close();}
} 示例代码UDP客户端 import java.net.*;public class UDPClient {public static void main(String[] args) throws Exception {DatagramSocket clientSocket new DatagramSocket();String sentence Hello from client;byte[] buf sentence.getBytes();InetAddress IPAddress InetAddress.getByName(localhost);DatagramPacket sendPacket new DatagramPacket(buf, buf.length, IPAddress, 9876);clientSocket.send(sendPacket);clientSocket.close();}
} 5 多线程网络服务器
为了处理多个客户端服务器通常需要使用多线程。
示例代码多线程服务器 import java.io.*;
import java.net.*;public class MultiThreadedServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(6789);while (true) {Socket clientSocket serverSocket.accept();new ClientHandler(clientSocket).start();}}private static class ClientHandler extends Thread {private Socket clientSocket;public ClientHandler(Socket socket) {this.clientSocket socket;}public void run() {try {InputStreamReader input new InputStreamReader(clientSocket.getInputStream());BufferedReader bufRead new BufferedReader(input);PrintWriter output new PrintWriter(clientSocket.getOutputStream(), true);String line;while ((line bufRead.readLine()) ! null) {System.out.println(Client: line);output.println(Server: line);}} catch (IOException e) {e.printStackTrace();} finally {try {clientSocket.close();} catch (IOException e) {e.printStackTrace();}}}}
} 6 安全性考虑
网络编程需要考虑安全性包括使用SSL/TLS加密通信处理恶意输入等。 通过这一节的学习你现在应该对Java中的网络编程基础有了深入的理解。网络编程是现代应用程序不可或缺的一部分它允许程序跨越网络进行通信和数据交换。掌握网络编程可以帮助你构建复杂的分布式系统和网络应用。