2013-03-23 39 views
0

使用Java編寫基於UDP的客戶機/服務器。UDP Java數據報

當服務器不斷地得到從插座包:

socket.receive(packet); 

而且即使客戶端發送多個數據包,數據包說1,2,3和4,客戶只能得到包4。重發所有這些數據包或以4,3,2和1的相反順序發送它們沒有任何區別。客戶端只能獲得序列號較大的數據包,這有點神奇。但我真正想要的是獲得所有4個數據包。

+0

發表一些代碼。你如何發送數據?你是否在單獨的線程中接收數據? – Thorn 2013-03-23 03:14:58

+0

@Thorn:它不在線程中。發件人部分如下所示: 'for(int i = 0; i <10; i ++){socket.send(packet [i]);}' – CodeFarmer 2013-03-23 03:18:49

+0

我仍然需要更多代碼來幫助您。發佈所有用於發送和接收UDP數據包的相關代碼。 – Thorn 2013-03-23 03:21:45

回答

1

對於所有發送的DatagramPackets,您使用的是相同的基礎byte []數組'dataBuf',因此它們在重新發送期間不會保持不同。

+0

沒錯,歡呼聲。 – CodeFarmer 2013-04-08 22:15:02