运行时候要2个java文件一起运行,先服务端后客户端。
服务端
ServerDemo.java
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ServerDemo {
public static void main(String[] args) {
try (ServerSocket server = new ServerSocket(8081);
Socket socket = server.accept();
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
Scanner input = new Scanner(System.in);) {
System.out.println("客户端:" + is.readLine()); // 显示从客户端读的数据
System.out.print("服务器端:");
String line = input.nextLine(); // 从键盘读一行数据
while (!line.equals("bye")) {
os.println(line); // 将数据发送到客户端
os.flush();
System.out.println("客户端:" + is.readLine()); // 显示从客户端读的数据
System.out.print("服务器端:");
line = input.nextLine(); // 从键盘读一行数据
}
} catch (Exception e) {
System.out.println("发生异常:" + e);
}
}
}
客户端
ClientDemo.java
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ClientDemo {
public static void main(String[] args) {
try (Socket socket = new Socket("127.0.0.1", 8081);
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
Scanner input = new Scanner(System.in);) {
System.out.print("客户端:");
String line = input.nextLine(); // 从键盘读一行数据
while (!line.equals("bye")) {
os.println(line); // 将数据发送到服务器
os.flush();
// 输出从服务器端读的一行数据
System.out.println("服务器端:" + is.readLine());
System.out.print("客户端:");
line = input.nextLine(); // 从键盘读一行数据
}
} catch (Exception e) {
System.out.println("发生异常:" + e);
}
}
}
这个示例展示了如何使用Java的Socket类创建一个简单的服务器和客户端应用。服务器监听8081端口,等待客户端连接。一旦连接建立,它们之间可以进行双向通信,直到输入'bye'终止对话。
413

被折叠的 条评论
为什么被折叠?



