为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 TCP 系统比 UDP 系统快?

为什么我的 TCP 系统比 UDP 系统快?

开满天机 2021-06-01 04:30:19
我有两个(客户端 - 服务器 - 客户端)系统。第一个使用 TCP,第二个使用 UDP。有趣的是,当传输大小为 5-6 mb 的文件时,我使用 TCP 的系统比使用 UDP 的系统快。问题是因为我的编码错误还是会发生?TCP客户端   try {       socket = new Socket("localhost", 7755);   } catch (Exception e) {       System.out.println(e.getMessage().toString());   }   out = new PrintWriter(socket.getOutputStream(), true);   int i = 0;   while (file.hasNext()) {       String line = file.nextLine();       if (!line.isEmpty()) {           out.println(line);       }       i++;   }TCP服务器     try {          serverSocketA = new ServerSocket(7755);          serverSocketB = new ServerSocket(7760);     } catch (Exception e) {          System.out.println("Port error!");     }     System.out.println("Server is ready...");     clientSocketA = serverSocketA.accept();     clientSocketB = serverSocketB.accept();     PrintWriter out = new PrintWriter(clientSocketB.getOutputStream(), true);     BufferedReader in = new BufferedReader(new InputStreamReader(clientSocketA.getInputStream()));     while((dataFromClientA = in.readLine()) != null) {          out.println(dataFromClientA);     }UDP服务器private static byte[] buf = new byte[6];static Scanner file;public static void main(String[] args) throws IOException{    long startTime = System.currentTimeMillis();    socket = new DatagramSocket();    address = InetAddress.getByName("localhost");    file = new Scanner(new File("sentfile.txt"));    DatagramPacket packet;    while (file.hasNext()) {        String line = file.nextLine();        if (!line.isEmpty()) {            buf = line.getBytes();            packet = new DatagramPacket(buf, buf.length, address, 7765);            socket.send(packet);        }    }我只是添加了 client1 和服务器代码,其余的类似。可能是什么原因?
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

TCP 已经由世界上一些最伟大的网络专家进行了大量优化。它专为尽可能快速有效地通过 IP 网络发送数据流而设计。它与内核相关联,并且在大多数现代平台上作为一个单元进行了大量优化。除非它做了一些你不需要的事情,否则你不会超越它,并且你可以从不做那件事中获得显着的好处。


查看完整回答
反对 回复 2021-06-02
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信