Java网络编程中socket连接断开问题案例
在Java网络编程中,socket连接断开是一个常见的问题。以下是一个简单的案例:
案例:TCP客户端与服务器的通信
- 客户端代码(Client.java):
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())))) {
System.out.println("Connected to server...");
// 发送消息
String message = "Hello, Server!";
in.write(message.getBytes());
// 接收并打印服务器响应
String response = in.readLine();
System.out.println("Server Response: " + response);
} catch (IOException e) {
e.printStackTrace();
System.out.println("Connection failed.");
}
}
}
- 服务器代码(Server.java):
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("Server started listening on port 1234...");
while (true) {
Socket socket = serverSocket.accept();
Thread thread = new Thread(() -> handleClient(socket)));
thread.start();
}
}
private static void handleClient(Socket socket) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
System.out.println("New client connected...");
// 接收客户端发送的消息
String message = in.readLine();
System.out.println("Received message from client: " + message);
// 发送服务器响应
String response = "Server received your message. Thanks!";
in.write(response.getBytes());
in.close();
socket.close();
}
}
在这个案例中,客户端尝试连接到服务器的端口1234。如果连接成功,他们会发送消息给服务器,并接收服务器的响应。
如果在执行过程中遇到断开的情况,可能的原因包括:网络中断、服务器未开启监听或者客户端代码中的错误。
还没有评论,来说两句吧...