Java网络编程:TCP连接与断开示例
在Java中,我们可以使用java.net.Socket和java.net.ServerSocket来创建TCP连接。以下是建立连接和断开连接的示例:
- 客户端创建连接:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
public class TcpClient {
public static void main(String[] args) {
// 创建一个Socket对象
Socket socket = new Socket("localhost", 1234); // 假设目标主机是localhost,端口是1234
try (BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())))) {
// 获取输入流
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到的消息: " + inputLine);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接
try {
socket.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
}
- 服务器端创建并监听连接:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
public static void main(String[] args) throws IOException {
// 创建一个ServerSocket对象,用于监听客户端的连接请求
ServerSocket serverSocket = new ServerSocket(1234); // 端口设置为1234
try (Socket socket = serverSocket.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())))) {
System.out.println("接受到新的连接");
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到的消息: " + inputLine);
// 处理消息(这里简单地打印)
in.mark(1024); // 设置标记,以便后续恢复读取位置
}
} catch (IOException ioe) {
ioe.printStackTrace();
System.exit(1);
} finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上示例分别展示了客户端连接服务器并发送消息,以及服务器端接受并处理客户端消息的流程。
还没有评论,来说两句吧...