Java的Socket进行通信

简介: 下面是一个使用Java的Socket进行通信的简单示例

下面是一个使用Java的Socket进行通信的简单示例:

服务器端代码:

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

public class Server {
   
    public static void main(String[] args) {
   
        try {
   
            // 创建ServerSocket并监听端口
            ServerSocket serverSocket = new ServerSocket(8080);
            System.out.println("服务器已启动,等待客户端连接...");

            // 接受客户端连接
            Socket socket = serverSocket.accept();
            System.out.println("客户端已连接:" + socket.getInetAddress());

            // 获取输入流,读取客户端发送的数据
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String message = reader.readLine();
            System.out.println("收到客户端消息:" + message);

            // 获取输出流,向客户端发送数据
            PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
            writer.println("服务器已收到消息:" + message);

            // 关闭资源
            reader.close();
            writer.close();
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

客户端代码:

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

public class Client {
   
    public static void main(String[] args) {
   
        try {
   
            // 创建Socket并连接到服务器
            Socket socket = new Socket("localhost", 8080);
            System.out.println("已连接到服务器");

            // 获取输出流,向服务器发送数据
            PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
            writer.println("Hello, Server!");

            // 获取输入流,读取服务器返回的数据
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String response = reader.readLine();
            System.out.println("收到服务器回复:" + response);

            // 关闭资源
            reader.close();
            writer.close();
            socket.close();
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

上述代码中,服务器端通过ServerSocket监听指定端口(例如8080),等待客户端的连接。一旦有客户端连接成功,服务器将与客户端建立Socket连接。然后,服务器可以通过Socket的输入流读取客户端发送的数据,并通过输出流向客户端发送响应数据。客户端同样通过Socket的输入流接收服务器的响应数据,并通过输出流向服务器发送数据。最后,关闭所有资源以释放系统资源。

请注意,上述代码只是一个简单的示例,实际应用中可能需要处理更多的异常情况和逻辑。

相关文章
|
17天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信
|
1月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
3月前
|
网络协议 程序员 Python
揭秘Python网络编程:深入理解Socket通信
在当今信息时代,网络通信已经成为人们生活中不可或缺的一部分。而Python作为一种高效、易用的编程语言,自然也能够很好地支持网络编程和Socket通信。本文将介绍Python网络编程与Socket通信的相关知识,包括Socket通信模型、Socket编程接口、网络套接字等内容。
|
3月前
|
网络协议 开发者 Python
Python网络编程与Socket通信:连接世界的无限可能
在当今数字化时代,Python作为一种强大的编程语言,通过网络编程与Socket通信为我们打开了连接世界的无限可能。本文将深入探讨Python网络编程的基础知识、Socket通信的原理以及实际应用,帮助读者更好地理解并运用这一技术。
|
3月前
|
网络协议
【Netty 网络通信】Socket 通信原理
【1月更文挑战第9天】【Netty 网络通信】Socket 通信原理
|
3天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
25天前
|
网络协议 Unix Linux
Socket通信详细介绍1
Socket通信详细介绍
30 0
|
2月前
|
C++
C++实现Socket连接通信
C++实现Socket连接通信
13 1
|
2月前
火山中文编程 -- 实现Socket通信
火山中文编程 -- 实现Socket通信
15 0