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

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

相关文章:

  • Docker学习笔记(十)搭建Docker私有仓库
  • 第三章:单调栈
  • MATLAB神经网络优化1000个案例算法汇总
  • KV Cache 在自回归生成中的作用及显存优化
  • Python连接数据库进行增删改查
  • Postman高级功能深度解析:Mock Server与自动化监控——构建高效API测试与监控体系
  • DeepSeek+知网研学赋能研究生学习课程:降低科研压力与提升科研效率
  • 在Orin上查看CUDA cuDNN TensorRT的版本
  • Nat Commun | 单细胞和空间转录组学分析构建NSCLC免疫和非免疫区图谱
  • 示波器直流耦合和交流耦合的区别
  • MySQL为什么默认使用RR隔离级别?
  • 24. 状态模式
  • 栈/堆/static/虚表
  • Pytest基础使用
  • 【产品小白】如何运营一个成熟的产品
  • 《深度剖析:BERT与GPT——自然语言处理架构的璀璨双星》
  • SeaTunnel简易封装方案:让数据集成更简单
  • 「低延迟+快速集成:Amazon IVS如何重塑实时互动视频体验?」
  • python中的min函数的key的用法 - abs绝对值
  • 误杀!微软道歉了!
  • 信俗与共:清代新疆回疆儒释道庙宇的中华政教
  • 穆迪下调美国主权信用评级
  • 新修订的《餐饮业促进和经营管理办法》公布,商务部解读
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 俄代表团:16日上午将继续“等候乌代表团”
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理