Java进阶教程7:Java网络编程基础与实战
本文将介绍Java网络编程的基础知识,如Socket编程、URL、URLConnection等,并通过实例讲解如何进行实战应用。
Java网络编程基础
Socket编程
Socket编程是Java网络编程的基础,它允许我们在不同主机之间建立全双工通信。Socket编程涉及到两个主要的类:ServerSocket
和Socket
。ServerSocket
用于监听客户端连接,Socket
用于建立与客户端的连接。以下是一个简单的Socket服务器端示例:
import java.io.*;
import java.net.*;
public class SocketServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = in.readLine();
System.out.println("接收到客户端消息:" + message);
out.println("你好,我是服务器,已收到你的消息:" + message);
in.close();
out.close();
socket.close();
}
}
}
URL
URL(Uniform Resource Locator,统一资源定位符)是网络资源的位置表示。Java中的URL
类提供了表示和解析URL的方法。以下是一个简单的URL示例:
import java.net.URL;
public class URLExample {
public static void main(String[] args) {
try {
URL url = new URL("https://www.example.com");
System.out.println("URL解析成功:" + url.toExternalForm());
} catch (MalformedURLException e) {
System.out.println("URL解析失败:" + e.getMessage());
}
}
}
URLConnection
URLConnection
类提供了用于连接和操作URL的方法。它支持HTTP、HTTPS和FTP协议。以下是一个简单的HTTP GET请求示例:
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class URLConnectionExample {
public static void main(String[] args) throws IOException {
URL url = new URL("https://www.example.com");
URLConnection connection = url.openConnection();
connection.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = in.readLine()) != null) {
response.append(line);
}
in.close();
connection.disconnect();
System.out.println("HTTP响应:" + response.toString());
}
}
实战应用
以下是一个简单的网络聊天室程序,使用Socket编程实现。
服务器端
import java.io.*;
import java.net.*;
public class ChatServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = in.readLine();
System.out.println("接收到客户端消息:" + message);
out.println("你好,我是服务器,已收到你的消息:" + message);
Broadcast(socket, message);
in.close();
out.close();
socket.close();
}
}
public static void Broadcast(
好好学习,天天向上