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

Java中的网络编程函数:Socket应用实例

发布时间:2023-07-03 13:50:39

Java中的网络编程函数包括Socket和ServerSocket两个类,用于在网络中实现客户端和服务端之间的通信。

Socket类是客户端和服务端的套接字类,用于建立连接、发送和接收数据。以下是一个实例,展示了如何使用Socket类在客户端发送一个请求给服务端,并接收服务端的响应。

客户端代码:

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

public class Client {
    public static void main(String[] args) {
        try {
            // 创建socket,指定服务端的IP地址和端口号
            Socket socket = new Socket("localhost", 8888);

            // 获取输出流,用于向服务端发送数据
            OutputStream outputStream = socket.getOutputStream();
            PrintWriter printWriter = new PrintWriter(outputStream, true);
            printWriter.println("Hello Server!");

            // 获取输入流,用于从服务端接收数据
            InputStream inputStream = socket.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String response = bufferedReader.readLine();
            System.out.println("Response from server: " + response);

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

服务端代码:

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

public class Server {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket,指定监听的端口号
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("Server started.");

            // 监听并接收客户端的连接
            Socket socket = serverSocket.accept();
            System.out.println("Client connected.");

            // 获取输入流,用于接收客户端的数据
            InputStream inputStream = socket.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String request = bufferedReader.readLine();
            System.out.println("Request from client: " + request);

            // 获取输出流,用于向客户端发送数据
            OutputStream outputStream = socket.getOutputStream();
            PrintWriter printWriter = new PrintWriter(outputStream, true);
            printWriter.println("Hello Client!");

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

以上代码中,首先客户端创建Socket对象,指定服务端的IP地址和端口号,并通过输出流发送一条消息。服务端创建ServerSocket对象,指定监听的端口号,并通过accept()方法接收客户端的请求,通过输入流接收消息并输出到控制台,然后通过输出流发送一条消息给客户端。最后关闭连接。

这个简单的网络编程实例展示了如何使用Java中的Socket类进行客户端和服务端之间的通信。在实际开发中,可以根据具体需求进行扩展和优化。