Java中的网络编程函数:如何实现TCP通信?
发布时间:2023-07-02 23:53:29
Java中实现TCP通信的关键是使用Socket和ServerSocket两个类。Socket类用于建立与服务器的连接,并进行数据传输;ServerSocket类用于在服务器端监听客户端的连接请求,并接受连接。
1. 客户端代码示例:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class TCPClient {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器的地址和端口号
Socket socket = new Socket("localhost", 8080);
// 获取输入输出流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送数据给服务器
out.println("Hello Server");
// 接收服务器返回的数据
String response = in.readLine();
System.out.println("Server response: " + response);
// 关闭连接
in.close();
out.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
首先创建一个Socket对象,指定服务器的地址和端口号,然后通过输入输出流进行数据的读写操作,最后关闭连接。
2. 服务器端代码示例:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,并绑定端口号
ServerSocket serverSocket = new ServerSocket(8080);
// 监听客户端的连接请求
Socket socket = serverSocket.accept();
// 获取输入输出流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 接收客户端发送的数据
String request = in.readLine();
System.out.println("Client request: " + request);
// 发送数据给客户端
out.println("Hello Client");
// 关闭连接
in.close();
out.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
首先创建一个ServerSocket对象,并绑定端口号,然后通过accept()方法监听客户端的连接请求,再通过输入输出流进行数据的读写操作,最后关闭连接。
通过以上代码示例,可以实现简单的TCP通信。注意需要保证客户端和服务器端使用相同的IP地址和端口号进行连接,以确保能够建立连接并进行数据传输。
