当前位置:首页 > 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 连接到服务器并发送消息:

java 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 传输对象。

标签: javasocket
分享给朋友:

相关文章

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

java如何实现多继承

java如何实现多继承

在Java中,由于语言设计本身不支持多继承(即一个类不能直接继承多个父类),但可以通过以下方式间接实现类似多继承的效果: 使用接口实现多继承 接口允许一个类实现多个接口,从而继承多个抽象行为。接口中…

php 实现 java md5加密

php 实现 java md5加密

PHP 实现 Java MD5 加密 Java 和 PHP 的 MD5 加密结果可能存在差异,主要由于字符编码和输出格式的不同。以下是确保 PHP 与 Java MD5 加密结果一致的方法。 确保字…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

win7如何配置java环境变量

win7如何配置java环境变量

下载并安装Java 从Oracle官网下载适合的Java Development Kit (JDK)安装包,选择与系统位数(32位或64位)匹配的版本。运行安装程序,按照提示完成安装,默认路径通常为C…

react如何与java配合

react如何与java配合

React 与 Java 配合的常见方式 React 作为前端框架,通常与 Java 后端通过 RESTful API 或 GraphQL 进行交互。以下是几种常见的配合方式: RESTful AP…