【问题标题】:UDP Java DatagramUDP Java 数据报
【发布时间】:2013-03-23 03:03:49
【问题描述】:

使用 Java 编写基于 UDP 的客户端/服务器。

当服务器不断从套接字获取数据包时:

socket.receive(packet); 

即使客户端发送多个数据包,例如数据包 1、2、3 和 4,客户端也只能获取数据包 4。重新发送所有这些数据包或以相反的 4 顺序发送它们没有区别,3,2 和 1. 客户端只能获取序列号较大的数据包,有点神奇。但我真正想要的是获得所有 4 个数据包。

【问题讨论】:

  • 发布一些代码。你是如何发送数据的?您是否在单独的线程中接收数据?
  • @Thorn:不在线程中。发件人部分看起来像:for(int i=0;i<10;i++){socket.send(packet[i]);}
  • 我仍然需要更多代码来帮助您。贴出发送和接收UDP数据包的所有相关代码。
  • @Thorn 请在上面查看我编辑的代码,谢谢!
  • 如果解决了,写下解决方案作为答案,并接受我们的回答

标签: java sockets udp


【解决方案1】:

您对所有发送的 DatagramPackets 使用相同的底层 byte[] 数组“dataBuf”,因此它们在重新发送期间不会保持不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2011-05-13
    相关资源
    最近更新 更多