给一个java serverSocket 接收客户端连接并收发数据的实例
以下是一个简单的Java ServerSocket实例,它接受客户端连接并收发数据:
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8080); // 创建ServerSocket并监听8080端口
System.out.println("Server started, waiting for client...");
Socket client = server.accept(); // 等待客户端连接
System.out.println("Client connected: " + client.getInetAddress().getHostAddress());
// 获取输入流和输出流
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true);
while (true) {
String msg = in.readLine(); // 读取客户端发送的数据
if (msg == null) {
break;
}
System.out.println("Received message from client: " + msg);
out.println("Server received: " + msg); // 发送数据给客户端
}
client.close(); // 关闭连接
server.close();
System.out.println("Server stopped.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端可以使用类似以下代码进行连接和数据收发:
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) {
try {
Socket client = new Socket("localhost", 8080); // 连接到ServerSocket监听的地址和端口
System.out.println("Connected to server: " + client.getInetAddress().getHostAddress());
// 获取输入流和输出流
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true);
out.println("Hello, server!"); // 发送数据给服务器
String msg = in.readLine(); // 读取服务器发送的数据
System.out.println("Received message from server: " + msg);
client.close(); // 关闭连接
} catch (IOException e) {
e.printStackTrace();
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/fh2v 著作权归作者所有。请勿转载和采集!