Java Socket套接字编程基础是什么

发布时间:2025-05-27 05:02:44 作者:小樊
来源:亿速云 阅读:84

Java Socket套接字编程是一种基于TCP/IP协议的网络通信方式,它允许Java程序通过网络与其他计算机上的程序进行数据交换。Socket编程通常用于实现客户端-服务器模式的应用程序。

在Java中,Socket编程主要涉及以下几个关键概念:

  1. Socket类:代表一个网络连接点,可以用来建立客户端和服务器之间的连接。客户端通过创建一个Socket实例来连接到服务器,而服务器则通过ServerSocket实例监听来自客户端的连接请求。

  2. ServerSocket类:用于服务器端,监听指定端口等待客户端的连接请求。当客户端请求连接时,ServerSocket会接受该请求并返回一个新的Socket实例,用于与客户端进行通信。

  3. InputStream和OutputStream:这两个类分别用于从Socket读取数据和向Socket写入数据。在客户端和服务器之间传输数据时,通常会将数据转换为字节流进行发送。

  4. DataInputStream和DataOutputStream:这两个类提供了更方便的方法来读写基本数据类型(如int、float、double等)的字节表示。

  5. Closeable接口:Socket和ServerSocket都实现了Closeable接口,这意味着它们都可以使用close()方法来关闭连接,释放资源。

下面是一个简单的Java Socket编程示例,包括一个服务器端和一个客户端:

服务器端

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

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

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

        InputStream inputStream = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);

        String message;
        while ((message = reader.readLine()) != null) {
            System.out.println("收到客户端消息: " + message);
            writer.println("服务器已收到: " + message);
        }

        socket.close();
        serverSocket.close();
    }
}

客户端

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

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost", 8888);
        System.out.println("已连接到服务器");

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);

        InputStream inputStream = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        // 发送消息给服务器
        writer.println("你好,服务器!");

        // 接收服务器的响应
        String response = reader.readLine();
        System.out.println("收到服务器消息: " + response);

        socket.close();
    }
}

在这个示例中,服务器监听8888端口等待客户端连接。当客户端连接成功后,服务器会接收客户端发送的消息,并发送一个确认消息给客户端。客户端则发送一条消息给服务器,并接收服务器的响应。

推荐阅读:
  1. 12.4-全栈Java笔记:Java网络编程(二)
  2. Java网络编程之TCP通信完整代码示例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:OpenHarmony ListView组件如何进行数据绑定

下一篇:OpenHarmony ListView组件如何布局

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》