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

Java函数的网络编程实例教程

发布时间:2023-06-26 00:23:36

网络编程是Java中非常重要的一部分,它允许Java开发人员通过网络与服务器通信。在本文中,我们将介绍如何创建Java函数的网络编程实例,包括服务器端和客户端。

1. 创建服务器端程序

首先,我们需要创建一个服务器程序,它将监听来自客户端的请求,并向客户端发送响应。以下是服务器端程序的基本代码:

import java.net.*;
import java.io.*;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket server = new ServerSocket(8080);
        System.out.println("Server started.");

        while (true) {
            Socket client = server.accept();
            System.out.println("Client connected.");
            BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintWriter out = new PrintWriter(client.getOutputStream(), true);

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                if ("exit".equals(inputLine)) {
                    break;
                }
                out.println("Server: " + inputLine);
            }
            in.close();
            out.close();
            client.close();
            System.out.println("Client disconnected.");
        }
    }
}

在上面的代码中,我们使用ServerSocket类创建一个服务器套接字,并将其绑定到本地端口8080上。然后,我们使用accept()方法等待客户端连接。当客户端连接时,我们将创建一个新的Socket对象,然后为Socket对象创建一个输入流和输出流。

接着,我们使用输入流读取来自客户端的数据,并向客户端发送响应。当客户端输入“exit”时,我们使用break语句终止循环。

最后,我们关闭输入流,输出流和客户端套接字,并打印“Client disconnected.”。

2. 创建客户端程序

接下来,我们需要创建一个客户端程序,它将连接到服务器并向服务器发送请求。以下是客户端程序的基本代码:

import java.net.*;
import java.io.*;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket client = new Socket("localhost", 8080);
        System.out.println("Client connected.");
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        PrintWriter out = new PrintWriter(client.getOutputStream(), true);

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
        String userInput;
        while ((userInput = stdIn.readLine()) != null) {
            out.println(userInput);
            System.out.println("Server: " + in.readLine());
            if ("exit".equals(userInput)) {
                break;
            }
        }

        in.close();
        out.close();
        client.close();
        System.out.println("Client disconnected.");
    }
}

在上面的代码中,我们使用Socket类创建一个客户端套接字,并连接到服务器的本地端口8080。然后,我们为Socket对象创建一个输入流和输出流。

接着,我们使用标准输入流读取用户输入,并将其发送给服务器。当服务器发送响应时,我们将其打印到屏幕上。当用户输入“exit”时,我们使用break语句终止循环。

最后,我们关闭输入流,输出流和客户端套接字,并打印“Client disconnected.”。

3. 测试程序

接下来,我们可以在终端窗口中运行服务器程序和客户端程序。当客户端连接到服务器并向其发送请求时,服务器将向客户端发送响应。

在终端窗口中运行服务器程序:

$ javac Server.java
$ java Server
Server started.

在另一个终端窗口中运行客户端程序:

$ javac Client.java
$ java Client
Client connected.
hello
Server: Server: hello

world
Server: Server: world

exit
Server: Server: exit
Client disconnected.

在客户端程序中,我们先输入“hello”,服务器返回了“Server: hello”。接着,我们输入“world”,服务器返回了“Server: world”。最后,我们输入“exit”以终止程序。

通过这个简单的网络编程实例,我们可以学习如何创建Java函数的网络编程实例,包括服务器端和客户端。您可以通过了解网络编程的基本概念和Java编程语言来扩展本教程,以创建更复杂的网络应用程序。