修改TEST_UDP_PROACTOR不能連續接受客戶數據的問題

在Receiver::handle_read_dgram函數的最後,增加下面的代碼:

ACE_Message_Block*   msg   =   new   ACE_Message_Block   (1024);  
   
 //   create   a   message   block   to   read   the   message   body  
 ACE_Message_Block*   body   =new   ACE_Message_Block   (1024);  
 msg->cont   (body);  
   
 //   ok   lets   do   the   asynch   read  
 size_t   number_of_bytes_recvd   =   1024;  
   
 int   res   =   rd_.recv   (msg,  
  number_of_bytes_recvd,  
  0,  
  PF_INET,  
  this->act_); 

也就是增加rd_.recv的調用,繼續數據的接受,同時也不用擔心這裏的new沒有顯式的delete,因爲
result.message_block ()->release ()已經將那塊內存區域釋放了;事實上測試數據表明,也沒有明顯的
內存泄露

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章