请帮忙看这个端口扫描程序错在哪里!该如何处理

请帮忙看这个端口扫描程序错在哪里!!!
我用VC6.0编写了一个端口扫描的客户端程序,在运行之后碰到如下问题:    
扫描程序很好地判断出指定tcp端口的开启状态,但扫描指定且已开启的udp端口时,给出的结果却是该端口已关闭.    
请高手们帮帮忙,看看是否是recvfrom函数有问题??

消息处理函数的主要代码如下:  

void     CPortScannerClientDlg::OnButscan()        
{            
          UpdateData();    
          AfxSocketInit();                 //初始化套接字    
 
          char     buffer[500+1];    
                         
 
          //tcp     端口扫描    
        if(m_combo.GetCurSel()==0)    
      {                            
 
          memset(buffer,0,500+1);    
          if     (m_socket.Create(0,SOCK_STREAM, "192.168.0.226 "))    
          {    
                DWORD     RemotePort=m_port;    
                if(m_socket.Connect(m_host,RemotePort))            
                {    
                        m_list.AddString( "the     target     port     is     open! ");    
                        m_list.AddString( "you     can     communicate     with   servernow! ");    
                        m_socket.Close();    
 
                  }    
                  else    
                  {    
                      m_list.AddString( "sorry,the     target     port     is     close     now! ");    
                      m_socket.Close();    
                  }    
            }    
                                             
      }    
  //udp     端口扫描    
      else    
      {    
              memset(buffer,0,500+1);    
              if(m_socket.Create(0,SOCK_DGRAM, "192.168.0.226 "))    
              {    
                    DWORD     RemotePort     =     m_port;