首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java UDP 即時資料接收:迴圈與多線程 DatagramSocket 實作

     編輯:程式設計綜合問答

基本程式碼

DatagramSocket ds = new DatagramSocket(10000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, 0, buf.length);
ds.receive(dp);
String data = new String(dp.getData(), 0, dp.getLength());
ds.close();

常見問題解答

  1. 如何即時接收?
    將 receive() 放在 while(true) 迴圈中,並建議在獨立執行緒執行,以免阻塞主程式。
  2. 來不及接收會怎樣?
    UDP 無連線,封包可能被作業系統 socket 緩衝區暫存,若緩衝區滿則會丟包,不算發送失敗但資料可能遺失。
  3. 如何設定緩衝區大小?
    可透過 DatagramSocket 的 setReceiveBufferSize 調整,但上限受作業系統限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved