如何用API函数实现网上邻居的功能?

粗略如下:每台机子启动以后,广播他已经启动的消息,其他启动的机子通过他的数据包获得主机名和域名,同时标识其机。  
每台机子建立一个共享文件,记录本机的共享目录,其他网内主机发送请求后,由其权限发出共享目录名。  
然后...........  
 
用NetServerEnum  列出所有的server  
再用NetFileEnum枚举出所有的共享文件。  
 
void  EnumServer()  
{LPSERVER_INFO_100    pServerEnum;  
     DWORD      dwResult,  dwRead,  dwTotal;  
 
     dwResult  =  ::NetServerEnum(  NULL,  100,    
                                                 (BYTE**)  &pServerEnum,  
                                                   -1,  &dwRead,  &dwTotal,  
                                                 SV_TYPE_ALL,  NULL,  0  );  
                                                   
     if  (  dwResult  ==  NERR_Success  ){  
           for  (  DWORD  i=0;  i<dwRead;  i++  )  
                 m_wndListBox.AddString(  CString(  (LPCWSTR)  pServerEnum[  i  ].sv100_name  )  );  
     }  
}  
 
 
 
void  PrintNetFiles(LPWSTR  server)  
{  
 
 resumeh  =  0;  
 do  
 {  
   buff  =  NULL;  
 
   rc=NetFileEnum(  
     (char  *)  server,  
     NULL,  
     NULL,  
     3,  
           (BYTE**)&buff,  
     2048,  
     &read,  
     &total,  
     &resumeh  );  
 
 
   if  (  rc  !=  ERROR_MORE_DATA  &&  rc  !=  ERROR_SUCCESS  )  
     break;  
 
 
   for  (  i  =  0,  curf  =  buff;  i  <  read;  ++  i,  ++  curf  )  
   {  
     printf(  "%-12S  %-15S    \n",  
       curf->fi3_username,  curf->fi3_pathname  
       );  
 
   }  
   if  (  buff  !=  NULL  )  
   NetApiBufferFree(  buff  );  
 
 }  while  (  rc  ==  ERROR_MORE_DATA  );  
 
   if  (  rc  !=  ERROR_SUCCESS  )  PrintError(  rc  );  
 
}  
 
 
netbios  api  
 
共享文件需要用户名和密码  
DWORD  WNetAddConnection2(  
   LPNETRESOURCE  lpNetResource,    //  connection  details  
   LPCTSTR  lpPassword,                      //  password  
   LPCTSTR  lpUsername,                      //  user  name  
   DWORD  dwFlags                                  //  connection  options  
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值