DatagramSocket類 會發生線程阻塞的方法


  遇到這個問題,還告訴別人錯了,這里來Mark一下。

  receive()方法會使調用線程阻塞。

  Java使用DatagramSocket代表UDP協議的Socket,DatagramSocket本身只是碼頭,不維護狀態,不能產生IO流,它的唯一作用就是接收和發送數據報,Java使用DatagramPacket來代表數據報,DatagramSocket接收和發送的數據都是通過DatagramPacket對象完成的。

  在接收數據前,通常需要生成一個DatagramPacket對象,給出數據字節數組及其長度。然后調用DatagramSocket的receive()方法等待數據報的到來,該方法會一直阻塞調用該方法的線程,直到收到一個數據報為止。

示例代碼:

// 創建一個接收數據的DatagramPacket對象
DatagramPacket data_packet=new DatagramPacket(buf, 1024);  
// 接收數據報 
socket.receive(data_packet); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM