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

Java网络编程函数:Socket类的使用示例

发布时间:2023-06-25 23:25:34

Java网络编程中的Socket是一种套接字,用于在不同计算机之间实现通信。它可以帮助我们创建客户端和服务器端程序,以便它们可以互相通信。

以下是一个使用Java网络编程中Socket类的示例程序,其中包括创建客户端和服务器端,并通过Socket类进行通信:

客户端程序:

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

public class ClientExample {
    public static void main(String[] args) {
        try {
            Socket serverSocket = new Socket("localhost", 5555);
            OutputStream out = serverSocket.getOutputStream();
            DataOutputStream dataOut = new DataOutputStream(out);
            dataOut.writeUTF("Hello, Server!");
            InputStream in = serverSocket.getInputStream();
            DataInputStream dataIn = new DataInputStream(in);
            System.out.println(dataIn.readUTF());
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的代码中,我们使用了Socket类的构造函数来创建一个套接字,连接本地主机的端口号5555。接下来,我们从该套接字上获取OutputStream,并将其传递给DataOutputStream。使用writeUTF()方法将其发送到服务器端。接下来,我们从Socket上获取InputStream,并将其传递给DataInputStream。使用readUTF()方法读取服务器端发送的响应并将其打印到控制台。最后我们关闭套接字连接。

服务器端程序:

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

public class ServerExample {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(5555);
            System.out.println("Server started, waiting for client...");
            Socket clientSocket = serverSocket.accept();
            System.out.println("Client connected: " + clientSocket.getInetAddress().getHostAddress());
            InputStream in = clientSocket.getInputStream();
            DataInputStream dataIn = new DataInputStream(in);
            System.out.println(dataIn.readUTF());
            OutputStream out = clientSocket.getOutputStream();
            DataOutputStream dataOut = new DataOutputStream(out);
            dataOut.writeUTF("Hello, Client!");
            clientSocket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的代码中,我们使用了ServerSocket类的构造函数创建一个服务器套接字,并指定要监听的端口号5555。我们使用accept()方法在该端口上等待客户端的连接请求。当客户端连接到服务器时,我们从该套接字上获取InputStream,并将其传递给DataInputStream。使用readUTF()方法读取客户端发送的消息,并将其打印到控制台。接下来,我们从套接字上获取OutputStream,并将其传递给DataOutputStream。使用writeUTF()方法向客户端发送响应。最后,我们关闭套接字连接。

Java网络编程中的Socket类是一种非常有用的工具。它可以帮助我们创建客户端和服务器端,并在它们之间实现通信。我们可以使用它来进行网络编程并实现我们的业务逻辑。