程序功能
服务器端:
创建一个服务器,监听8080端口。
等待客户端连接,接收客户端发送的消息,并在控制台输出该消息。
向客户端返回一个响应,告知消息已收到。
完成后关闭连接。
客户端:
连接到服务器的8080端口。
向服务器发送一条消息(如"你好,服务器!")。
接收服务器的响应并输出到控制台。
完成后关闭连接。
这种简单的网络编程方式可以用于局域网内的消息传递和基本的客户端-服务器模型。
代码
import java.io.*;
import java.net.*;
public class SimpleServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8080)) { // 创建服务器端socket,端口号为8080
System.out.println("服务器已启动,等待客户端连接...");
Socket clientSocket = serverSocket.accept(); // 等待客户端连接
System.out.println("客户端已连接");
// 从客户端接收数据
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String clientMessage = in.readLine();
System.out.println("接收到客户端消息: " + clientMessage);
// 向客户端发送响应
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println("服务器已收到消息: " + clientMessage);
// 关闭连接
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class SimpleClient {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8080)) { // 连接到服务器,localhost表示本地,端口8080
System.out.println("已连接到服务器");
// 向服务器发送消息
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("你好,服务器!");
// 接收服务器响应
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String serverMessage = in.readLine();
System.out.println("从服务器接收到的消息: " + serverMessage);
} catch (IOException e) {
e.printStackTrace();
}
}
}