基于NetBIOS的编程中,定向型数据报程序,要指定通讯对方的NetBIOS名字或者组名。但是怎么获得对方的NetBIOS名?
这段代码该怎么写?

解决方案 »

  1.   

    网络通讯的对方地址信息一般有两种方式获得:1。对方预定义好的地址,因此你总是可以用同一个名字访问(如telnet端口是21,你不需要查询就知道)
    2。通过知名服务查询。(例如你要访问www.csdn.net,你是通过dns服务查询得到它的ip地址)对于你的netbios编程,道理应该差不多。要么你早知道它的名字和组,要么有个地方给你查询。我估计你应该首先试试前者,即预先知道对方的名字和组,通过配置文件传给你程序。
      

  2.   

    由于NetBIOS属于UDP协议,并且默认端口是137.
    可以通过WINSOCK进行UDP协议发送数据包
    关于NetBIOS协议的数据包格式比较简单,你可以上网查询一下。
    发送一个询问数据包,接受一个响应的数据包。
    前提是NETBIOS协议在目标主机中正确安装,并且启用。
    如果能得到正常响应的数据包,那么你想得到的信息都能从中获取。
    当然,你也可以通过另一种变通的方法:通过目标主机的IP地址,进行DOS命令NBTSTAT得相应的NETBIOS的信息,包括主机名称或组信息等
    不过,就效率而言,直接针对NetBIOS协议进行编码,要快得多!