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

Java函数实现TCP/IP网络编程:代码实例解析。

发布时间:2023-11-06 14:57:07

Java函数实现TCP/IP网络编程是通过使用Java的Socket类和ServerSocket类来实现的。这些类提供了用于创建和处理网络连接的方法。下面是一个简单的代码实例来解析这个过程。

1. 创建服务器端:

public class Server {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象绑定指定的端口号
            ServerSocket serverSocket = new ServerSocket(1234);
            System.out.println("服务器已启动,等待客户端连接...");

            while (true) {
                // 监听客户端的连接请求
                Socket socket = serverSocket.accept();
                System.out.println("客户端连接成功!");

                // 创建一个新线程处理客户端请求
                ServerThread thread = new ServerThread(socket);
                thread.start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中,我们创建了一个服务器端程序。首先,我们通过创建一个ServerSocket对象并将其绑定到指定的端口号(在上面的例子中是1234)来初始化服务器。然后,我们通过在一个无限循环中调用serverSocket.accept()方法来监听客户端的连接请求。一旦有客户端连接成功,我们就创建一个新线程(ServerThread)来处理连接。

2. 创建客户端:

public class Client {
    public static void main(String[] args) {
        try {
            // 创建一个Socket对象,指定要连接的服务器地址和端口号
            Socket socket = new Socket("localhost", 1234);
            System.out.println("已连接到服务器!");

            // 获取输出流,向服务器发送数据
            OutputStream outputStream = socket.getOutputStream();
            outputStream.write("Hello, Server!".getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个例子是一个简单的客户端程序。在这个程序中,我们首先创建了一个Socket对象,并指定要连接的服务器地址和端口号(在上面的例子中是localhost和1234)。然后,我们通过调用socket.getOutputStream()方法来获取输出流,并使用该流向服务器发送数据。

3. 创建服务器线程:

public class ServerThread extends Thread {
    private Socket socket;

    public ServerThread(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {
        try {
            // 获取输入流,读取客户端发送的数据
            InputStream inputStream = socket.getInputStream();
            byte[] buffer = new byte[1024];
            int len = inputStream.read(buffer);
            String message = new String(buffer, 0, len);
            System.out.println("收到客户端数据:" + message);

            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个例子是一个服务器线程类,它继承了Thread类。在这个类中,我们首先获取输入流,以便读取客户端发送的数据。然后,我们使用socket.getInputStream().read()方法将接收到的数据存储在一个字节数组中,并将其转换为字符串。最后,我们关闭与客户端的连接。

上述代码实例了Java函数实现TCP/IP网络编程的基本原理。然而,要完全理解和掌握网络编程还需深入研究和实践。