当前位置: 首页 > article >正文

java TCP UDP 客户端访问例子和对比差异

Java TCP客户端示例

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

public class TCPClient {
    public static void main(String[] args) {
        try (
            Socket socket = new Socket("localhost", 12345);  // 连接服务端
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))
        ) {
            // 发送数据
            out.println("Hello TCP Server!");
            
            // 接收响应
            String response = in.readLine();
            System.out.println("Server response: " + response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java UDP客户端示例

import java.net.*;

public class UDPClient {
    public static void main(String[] args) {
        try (DatagramSocket socket = new DatagramSocket()) {
            // 发送数据
            String message = "Hello UDP Server!";
            byte[] buffer = message.getBytes();
            InetAddress address = InetAddress.getByName("localhost");
            int port = 54321;
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
            socket.send(packet);
            
            // 接收响应(可选)
            byte[] receiveBuffer = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
            socket.receive(receivePacket);
            System.out.println("Server response: " + new String(receivePacket.getData()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

TCP与UDP对比表格

特性TCPUDP
连接方式面向连接(三次握手)无连接
可靠性可靠(数据不丢失/重复/乱序)不可靠(可能丢失/重复/乱序)
顺序保证保证数据顺序不保证
速度较慢(握手/流量控制开销)快(无连接管理开销)
头部大小20-60字节8字节
流量控制有(自动调整发送速率)
延迟较高(需确认机制)
应用场景文件传输、HTTP/HTTPS、Email视频通话、在线游戏、实时监控

关键差异总结

场景TCP推荐UDP推荐
数据完整性要求高✔️(如文件下载)❌(可能丢失数据)
实时性要求高❌(延迟较高)✔️(如游戏心跳包)
大量小数据包❌(开销大)✔️(如传感器数据上报)
需要端到端控制✔️(重传/拥塞控制)❌(需自行实现)

http://www.kler.cn/a/593601.html

相关文章:

  • 九、JavaScript作用域、预解析
  • 2025年高校辅导员考试题库及答案
  • numpy学习笔记9:numpy的广播机制详细解释
  • 【Transformer】架构:解锁自然语言处理的无限可能
  • 关于金融开发领域的一些专业知识总结
  • 第十三章,L2TP VPN
  • XSS漏洞靶场练习
  • 成都国际数字影像产业园,文创产业运营新典范深度解析​
  • win10 如何用我的笔记本 接网线 远程控制 台式机
  • Python个人学习笔记(17):模块(sys、picklejson)
  • 4.6--入门知识扫盲,路径追踪与路由误导:Tracert攻击 vs ICMP重定向攻击(包你看一遍全记住)
  • iPaaS集成平台中的API可视化编排能给企业带来什么作用
  • Bilve 搭建手册
  • 解析Collections工具类主要功能
  • Execution failed for task ‘:path_provider_android:compileDebugJavaWithJavac‘.
  • PyTorch分布式训练中各节点如何通信
  • 第1次课枚举算法
  • Ubuntu 软件仓库管理概述与基本原理
  • PCL—passThrough 点云直通滤波器
  • 阿根廷主流收单方式:Rapipago支付