Java之网络编程案例讲解
网络编程概述
网络编程是指编写程序使计算机之间实现通信的过程。在网络编程中通信是指通过套接字Socket在两台计算机之间进行的。Socket 是应用层与TCP/IP协议族通信的通信端点,也是TCP/IP协议族中最重要定位方式之一。
Java网络编程
Java网络编程中能用来实现网络通信的类实在是太多了,这里我只列举几个常用的。
java.net.Socket
: 套接字,是网络通信中的基本操作单元。java.net.ServerSocket
: 服务器套接字,用来监听来自客户端的请求。java.net.URL
: 统一资源定位符,它表示Internet上某一资源的地址,协议可以是HTTP、FTP、TELNET等。java.net.DatagramSocket
: 使用UDP协议的套接字实现数据报式数据的发送和接收。java.net.MulticastSocket
: 使用UDP协议的数据报套接字,可以将数据报发送到一个组中的所有的客户端上。java.net.InetAddress
: Java用它来代表IP地址。
Java网络编程案例
1. 简单的客户端和服务端通信
客户端连接服务端,服务端接收到客户端发送的消息并回复消息给客户端。
服务端代码:
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8888);
System.out.println("服务端已启动,等待客户端连接...");
Socket socket = server.accept();
System.out.println("客户端已连接");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = in.readLine();
System.out.println("接收到客户端的消息:" + message);
PrintWriter out = new PrintWriter(socket.getOutputStream());
System.out.println("发送消息给客户端:Hello Client!");
out.print("Hello Client!");
out.flush();
socket.close();
server.close();
}
}
客户端代码:
public class Client {
public static void main(String[] args) throws IOException {
String host = "localhost";
int port = 8888;
Socket socket = new Socket(host, port);
PrintWriter out = new PrintWriter(socket.getOutputStream());
System.out.println("发送消息给服务端:Hello Server!");
out.print("Hello Server!");
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = in.readLine();
System.out.println("接收到服务端的消息:" + message);
socket.close();
}
}
2. 简单的Web服务器
实现一个简单的Web服务器,当用户请求时,可以返回一个HTML页面给客户端。
public class SimpleWebServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8888);
System.out.println("Web服务器已启动,等待客户端请求...");
while (true) {
Socket clientSocket = server.accept();
System.out.println("客户端请求: " + clientSocket);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String line = in.readLine();
while (!line.isEmpty()) {
System.out.println(line);
line = in.readLine();
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
out.println("HTTP/1.1 200 OK");
out.println("Content-Type: text/html");
out.println("");
out.println("<html><body>");
out.println("<h1>Hello World!</h1>");
out.println("</body></html>");
out.flush();
clientSocket.close();
}
}
}
在浏览器中输入http://localhost:8888/
即可查看效果。
以上是Java网络编程的简单例子,网络编程涉及到很多概念和协议,只有通过实际的实践才能理解得更深刻。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之网络编程案例讲解 - Python技术站