欢迎访问宙启技术站
智能推送

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地址和端口号进行连接,以确保能够建立连接并进行数据传输。