用netbios!
如果不编程就用那个追捕了!

解决方案 »

  1.   

    大虾又在说笑了,当然是要编程了
    netbios怎么用
      

  2.   

    recvform函数里已经返回发包者的IP了啊。
      

  3.   

    gethostname可以知道对方的主机名
      

  4.   

    int recvfrom (
      SOCKET s,                   
      char FAR* buf,              
      int len,                    
      int flags,                  
      struct sockaddr FAR* from,  
      int FAR* fromlen            
    );
     
    其中from包含源ip
      

  5.   

    是阿,recvfrom里面有地址参数
      

  6.   

    recvfrom  会传入一个地址结构提参数和这个结构提长度的参数
    接受后,发送方的IP,port将存入该结构体
      

  7.   

    我用的是MFC的CSocket类(的派生类)
    不是用的recvfrom
      

  8.   

    使用MFC的CSocket类时
    由于是接受广播包,受到数据包时,不会触发OnAccept事件,而是直接触发OnReceive事件,在OnReceive事件里,直接用virtual int Receive (void* lpBuf, int nBufLen, int nFlags = 0)函数接收数据
      

  9.   

    另外,用CSocket类如何发送广播包
      

  10.   

    int iOptionValue = 1;
    SetSockOpt( SO_BROADCAST, &iOptionValue, sizeof( BOOL ), SOL_SOCKET );
      

  11.   

    好象是因为广播包的问题,通讯过程不是基于连接的,所以,CSocket.GetPeerName()返回空
      

  12.   

    谢谢herosword(南),用CSocket类如何发送广播包的问题已经解决,先送你10分,等其他问题解决后一并给分
      

  13.   

    不好意思,用recvfrom原来可以,发包者的IP的问题也已经解决,谢谢