当前位置:首页 > Java

java socket如何运行

2026-03-04 04:21:12Java

Java Socket 的基本运行方法

Java Socket 编程基于客户端-服务器模型,通过 java.net 包中的 SocketServerSocket 类实现。以下是实现简单通信的代码示例和说明。

服务器端代码

服务器端使用 ServerSocket 监听指定端口,等待客户端连接:

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

public class Server {
    public static void main(String[] args) throws IOException {
        int port = 12345;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("服务器启动,等待客户端连接...");

        Socket clientSocket = serverSocket.accept();
        System.out.println("客户端已连接");

        BufferedReader in = new BufferedReader(
            new InputStreamReader(clientSocket.getInputStream())
        );
        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            System.out.println("收到客户端消息: " + inputLine);
            out.println("服务器回复: " + inputLine);
        }

        in.close();
        out.close();
        clientSocket.close();
        serverSocket.close();
    }
}

客户端代码

客户端通过 Socket 连接到服务器并发送消息:

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

public class Client {
    public static void main(String[] args) throws IOException {
        String host = "localhost";
        int port = 12345;

        Socket socket = new Socket(host, port);
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(
            new InputStreamReader(socket.getInputStream())
        );
        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

        String userInput;
        while ((userInput = stdIn.readLine()) != null) {
            out.println(userInput);
            System.out.println("服务器回复: " + in.readLine());
        }

        out.close();
        in.close();
        stdIn.close();
        socket.close();
    }
}

运行步骤

  1. 编译服务器端和客户端代码:
    javac Server.java
    javac Client.java
  2. 先运行服务器端程序:
    java Server
  3. 再运行客户端程序:
    java Client

关键点说明

  • ServerSocket 用于服务器端绑定端口并监听连接。
  • Socket 用于建立客户端与服务器的连接,或服务器接受客户端连接。
  • BufferedReaderPrintWriter 用于处理输入输出流。
  • 通信完成后需关闭所有资源以避免内存泄漏。

扩展功能

  • 多线程处理:服务器端可以为每个客户端连接创建独立线程。
  • 异常处理:添加 try-catch 块处理网络异常。
  • 数据序列化:通过 ObjectInputStreamObjectOutputStream 传输对象。

java socket如何运行

标签: javasocket
分享给朋友:

相关文章

如何查看java版本

如何查看java版本

查看 Java 版本的方法 通过命令行工具 打开终端(Windows 为命令提示符或 PowerShell,macOS/Linux 为 Terminal),输入以下命令并回车: java -v…

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorld…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void…

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…