Java Socket实现单线程通信的方法示例

下面我会针对“Java Socket实现单线程通信的方法示例”的攻略进行详细解答。

下面我会针对“Java Socket实现单线程通信的方法示例”的攻略进行详细解答。

1. 什么是Java Socket

Java Socket是一种用于网络编程的API,它提供了简单、高效的网络通信方式,允许程序通过网络连接来进行数据传输。

2. Java Socket实现单线程通信的方法

2.1 创建服务器

下面是一个简单的Java Socket服务器实现:

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

public class Server {
    private ServerSocket serverSocket;

    public Server(int port) throws IOException {
        serverSocket = new ServerSocket(port);
    }

    public void run() {
        while(true) {
            try {
                Socket socket = serverSocket.accept();
                DataInputStream in = new DataInputStream(socket.getInputStream());
                System.out.println(in.readUTF());
                DataOutputStream out = new DataOutputStream(socket.getOutputStream());
                out.writeUTF("Thx for ur connection!");
                socket.close();
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws IOException {
        Server server = new Server(8888);
        server.run();
    }
}

以上代码中,首先创建了一个ServerSocket对象用于监听来自客户端的连接请求。当有客户端连接时,服务器会获取对应的输入流和输出流,然后进行通信。数据传输使用DataInputStreamDataOutputStream进行,这两个类经过封装可以很方便地进行数据读写操作。

2.2 创建客户端

下面是一个简单的Java Socket客户端:

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

public class Client {
    private Socket socket;

    public Client(String ip, int port) throws IOException {
        socket = new Socket(ip, port);
    }

    public void run() {
        try {
            DataOutputStream out = new DataOutputStream(socket.getOutputStream());
            out.writeUTF("Hello from " + socket.getLocalSocketAddress());
            DataInputStream in = new DataInputStream(socket.getInputStream());
            System.out.println(in.readUTF());
            socket.close();
        } catch(IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws IOException {
        Client client = new Client("localhost", 8888);
        client.run();
    }
}

以上代码中,首先创建了一个Socket对象用于连接指定的服务器。连接成功后,客户端会获取对应的输入流和输出流,然后进行通信。数据传输也是使用DataInputStreamDataOutputStream进行,这两个类经过封装可以很方便地进行数据读写操作。

3. 程序的运行流程

  1. 先运行服务器程序,它会监听8888端口来接收来自客户端的请求。
  2. 运行客户端程序,它会向服务器8888端口发送一条消息。
  3. 服务器接收到客户端发送的消息后,会在控制台上输出消息内容,并向客户端发送一条回复消息。
  4. 客户端接收到服务器发送的回复消息后,在控制台上输出消息内容。
  5. 连接结束后,服务器和客户端都会关闭连接。

本文标题为:Java Socket实现单线程通信的方法示例

基础教程推荐