首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【实现TCP和UDP传输】

【实现TCP和UDP传输】

作者头像
用户1750537
发布2025-08-29 14:25:47
发布2025-08-29 14:25:47
11000
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199

使用Java实现TCP和UDP传输原始报文的功能,包括服务端返回响应存储数据的结果,可以按照以下步骤进行:

  1. 创建TCP服务端:
代码语言:javascript
代码运行次数:0
运行
复制
import java.io.*;
import java.net.*;

public class TCPServer {
    public static void main(String[] args) throws IOException {
        int port = 8888;
        ServerSocket serverSocket = new ServerSocket(port);
        
        System.out.println("TCP Server started on port " + port);
        
        while (true) {
            Socket clientSocket = serverSocket.accept();
            System.out.println("Accepted connection from " + clientSocket.getInetAddress().getHostAddress());
            
            DataInputStream in = new DataInputStream(clientSocket.getInputStream());
            DataOutputStream out = new DataOutputStream(clientSocket.getOutputStream());
            
            // 读取客户端发送的数据
            byte[] data = new byte[1024];
            int bytesRead = in.read(data);
            String request = new String(data, 0, bytesRead);
            
            // 处理数据并返回响应
            String response = processData(request);
            out.write(response.getBytes());
            
            // 关闭连接
            clientSocket.close();
        }
    }
    
    private static String processData(String request) {
        // 处理逻辑,将数据存储到数据库等
        return "Data stored successfully!";
    }
}
  1. 创建TCP客户端:
代码语言:javascript
代码运行次数:0
运行
复制
import java.io.*;
import java.net.*;

public class TCPClient {
    public static void main(String[] args) throws IOException {
        String serverAddress = "localhost";
        int serverPort = 8888;
        
        Socket socket = new Socket(serverAddress, serverPort);
        
        DataInputStream in = new DataInputStream(socket.getInputStream());
        DataOutputStream out = new DataOutputStream(socket.getOutputStream());
        
        // 发送数据给服务端
        String data = "Raw data to be stored";
        out.write(data.getBytes());
        
        // 接收服务端返回的响应
        byte[] responseBytes = new byte[1024];
        int bytesRead = in.read(responseBytes);
        String response = new String(responseBytes, 0, bytesRead);
        System.out.println("Server response: " + response);
        
        // 关闭连接
        socket.close();
    }
}
  1. 创建UDP服务端:
代码语言:javascript
代码运行次数:0
运行
复制
import java.io.*;
import java.net.*;

public class UDPServer {
    public static void main(String[] args) throws IOException {
        int port = 8888;
        DatagramSocket serverSocket = new DatagramSocket(port);
        
        System.out.println("UDP Server started on port " + port);
        
        while (true) {
            byte[] receiveData = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
            
            serverSocket.receive(receivePacket);
            
            String request = new String(receivePacket.getData(), 0, receivePacket.getLength());
            InetAddress IPAddress = receivePacket.getAddress();
            int clientPort = receivePacket.getPort();
            
            // 处理数据并返回响应
            String response = processData(request);
            byte[] sendData = response.getBytes();
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientPort);
            
            serverSocket.send(sendPacket);
        }
    }
    
    private static String processData(String request) {
        // 处理逻辑,将数据存储到数据库等
        return "Data stored successfully!";
    }
}
  1. 创建UDP客户端:
代码语言:javascript
代码运行次数:0
运行
复制
import java.io.*;
import java.net.*;

public class UDPClient {
    public static void main(String[] args) throws IOException {
        String serverAddress = "localhost";
        int serverPort = 8888;
        
        DatagramSocket socket = new DatagramSocket();
        
        // 发送数据给服务端
        String data = "Raw data to be stored";
        byte[] sendData = data.getBytes();
        InetAddress IPAddress = InetAddress.getByName(serverAddress);
        DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, serverPort);
        
        socket.send(sendPacket);
        
        byte[] receiveData = new byte[1024];
        DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
        
        // 接收服务端返回的响应
        socket.receive(receivePacket);
        
        String response = new String(receivePacket.getData(), 0, receivePacket.getLength());
        System.out.println("Server response: " + response);
        
        // 关闭连接
        socket.close();
    }
}

使用Java实现TCP和UDP传输原始报文,并在服务端返回响应后将数据存储的功能。需要注意的是,TCP是基于连接的,而UDP是无连接的。因此,TCP客户端和服务端需要在建立连接后进行通信,而UDP客户端和服务端可以直接发送和接收数据包。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档