Windows网络编程 教学课件 ppt 作者 罗莉琴 詹祖桥 第7章

上传人:E**** 文档编号:89408141 上传时间:2019-05-24 格式:PPT 页数:61 大小:839KB
返回 下载 相关 举报
Windows网络编程 教学课件 ppt 作者  罗莉琴 詹祖桥 第7章_第1页
第1页 / 共61页
Windows网络编程 教学课件 ppt 作者  罗莉琴 詹祖桥 第7章_第2页
第2页 / 共61页
Windows网络编程 教学课件 ppt 作者  罗莉琴 詹祖桥 第7章_第3页
第3页 / 共61页
Windows网络编程 教学课件 ppt 作者  罗莉琴 詹祖桥 第7章_第4页
第4页 / 共61页
Windows网络编程 教学课件 ppt 作者  罗莉琴 詹祖桥 第7章_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《Windows网络编程 教学课件 ppt 作者 罗莉琴 詹祖桥 第7章》由会员分享,可在线阅读,更多相关《Windows网络编程 教学课件 ppt 作者 罗莉琴 詹祖桥 第7章(61页珍藏版)》请在金锄头文库上搜索。

1、,Windows网络编程实用教程,授课教师: 职务:,第7章 NetBIOS网络编程技术,课程描述 NetBIOS(NETwork Basic Input/Output System,网络基本输入/输出系统)定义了一种软件接口以及在应用程序和连接介质之间提供通信接口的标准方法。它可以提供名字服务、会话服务和数据库服务,基于NetBIOS的比较典型的应用是获取远程计算机的Mac地址、名称和所在工作组等信息。本章将对NetBIOS网络编程技术进行介绍。,本章知识点,7.1 NetBIOS协议及应用 7.2 NetBIOS开发接口 7.3 在程序中实现NBTSTAT命令的功能,7.1 NetBIOS

2、协议及应用,7.1.1 NetBIOS协议 7.1.2 使用NBTSTAT命令,7.1.1 NetBIOS协议,NetBIOS协议最初由IBM开发,微软公司在此基础上对该协议进行了完善,并在Windows上提供了对NetBIOS协议的支持。网络邻居功能就是基于NetBIOS协议的。在Windows中安装TCP/IP协议的同时就会安装NetBIOS协议。下面介绍一下在Windows 2003中启用和配置NetBIOS协议的方法。,配置NetBIOS,右键单击桌面上的网络邻居图标,在弹出菜单中选择“属性”,打开“网络连接”窗口。 右键单击“本地连接”图标,在弹出菜单中选择“属性”,打开“本地连接属

3、性”对话框。,配置NetBIOS,选中“Internet协议(TCP/IP)”项,单击“属性”按钮,打开“Internet协议(TCP/IP)”属性对话框。 单击“高级”按钮,打开“高级TCP/IP设置”对话框。单击“WINS”选项卡,可以对NetBIOS协议进行设置。,1LANA编号,LANA(LAN Adapter,LAN适配器)编号是NetBIOS进行网络编程的关键,它对应于网卡及传输协议的唯一组合。例如,假定某个工作站安装了两块网卡,以及两种具有NetBIOS能力的传输协议(例如TCP/IP和NetBEUI),那么将共有下面4个LANA编号: 表示“TCP/IP网卡1”对。 表示“Ne

4、tBEUI网卡1”对。 表示“TCP/IP网卡2”对。 表示“NetBEUI网卡2”对。,2名字服务,NetBIOS协议支持建立名字服务器,负责查找目标主机对应的IP地址,并赋予一个NetBIOS名称。名字服务提供的主要功能如下: 添加名字,即注册一个NetBIOS名字。 添加组名,即注册一个NetBIOS组名。 删除名字,即取消一个NetBIOS名字和组名的注册。 查询名字,即在网络中搜索NetBIOS名字。,3会话服务,会话服务提供的主要功能如下: 调用,即打开一个到远程NetBIOS名字的会话。 侦听,即侦听其他程序的连接请求。 挂起,即关闭一个会话。 发送,即向会话对端的计算机发送一个

5、数据包,并等待对方确认。 无确认发送,即向会话对端的计算机发送一个数据包,但不需要对方确认。 接收,即等待从会话对端发送的数据包到达。,4数据报服务,数据报服务提供的主要功能如下: 发送数据报,即向远程NetBIOS名字发送一个数据报。 发送广播数据报,即向网络中所有NetBIOS名字发送数据报。 接收数据报,即等待从发送数据报操作中到达的数据。 接收广播数据报,即等待从发送广播数据报操作中到达的数据。 在Windows中,如果安装了NetBIOS协议,则系统将自动开放下列端口: 137端口,主要作用是在局域网中提供计算机的名称或IP地址查询服务。 138端口,主要作用是提供NetBIOS环境

6、下的计算机名浏览功能。 139端口,主要作用是提供文件和打印机共享的功能。,7.1.2 使用NBTSTAT命令,在Windows命令窗口中执行NBTSTAT命令,可以获取指定远程计算机的基本信息,包括Mac地址、计算机名和所属工作组等。NBTSTAT命令的格式如下: NBTSTAT -a RemoteName -A IP address -c -n -r -R -RR -s -S interval ,NBTSTAT参数的具体说明,实例,NBTSTAT -A 192.168.5.168 NBTSTAT -a LEE-THINKPAD,7.2 NetBIOS开发接口,7.2.1 NetBIOS操作

7、 7.2.2 NCB结构体 7.2.3 其他常用NetBIOS结构体 7.2.4 Netbios()函数 7.2.5 获取LANA上的所有NetBIOS名字 7.2.6 获取网络适配器上的MAC地址,7.2.1 NetBIOS操作,协议驱动程序对外公布NetBIOS接口,并将NetBIOS命令映射到协议驱动程序的内部命令。NetBIOS模拟器接收NetBIOS命令,将它们转换成TDI(Transport Driver Interface,传输驱动程序接口)调用,然后使用TDI接口将它们转发到传输驱动程序。 在Windows 2003、Windows XP、Windows 2000和Window

8、s NT操作系统中,NetBIOS操作的流程如下:,7.2.2 NCB结构体,typedef struct _NCB UCHAR ncb_command; UCHAR ncb_retcode; UCHAR ncb_lsn; UCHAR ncb_num; PUCHAR ncb_buffer; WORD ncb_length; UCHAR ncb_callnameNCBNAMSZ; UCHAR ncb_nameNCBNAMSZ; UCHAR ncb_rto; UCHAR ncb_sto; void (CALLBACK *ncb_post)(struct NCB); UCHAR ncb_lana_n

9、um; UCHAR ncb_cmd_cplt; UCHAR ncb_reserveX; HANDLE ncb_event; NCB, *PNCB;,1ncb_command,2ncb_retcode,NCB结构体其他成员变量,3ncb_lsn 表示本地会话编号。在指定环境中此编号唯一标识一个会话。调用Netbios()函数成功执行了NCBCALL命令后返回此编号。 4ncb_num 指定本地网络名字编号。调用Netbios()函数成功执行了NCBADDNAME或者NCBADDGRNAME命令后返回此编号。此编号在所有数据包命令和NCBRECVANY命令中使用。 5ncb_buffer 指向消息

10、缓冲区。可以使用表7.4中的命令访问消息缓冲区。,NCB结构体其他成员变量,6ncb_length 指定消息缓冲区的大小,单位为字节。对于接收命令,此成员变量由Netbios()函数设置,表示接收到的字节数。 如果缓冲区长度不正确,则Netbios()函数返回NRC_BUFLEN错误编码。 7ncb_callname 指定远端应用程序的名字。 8ncb_name 指定应用程序可以识别的名字。 9ncb_rto 指定会话执行接收操作的超时时间。将此成员变量指定为0,表示在执行NCBCALL和NCBLISTEN命令时没有超时。超时会影响随后执行的NCBRECV命令。 10ncb_sto 指定会话执

11、行发送操作的超时时间。将此成员变量指定为0,表示在执行NCBCALL和NCBLISTEN命令时没有超时。超时会影响随后执行的NCBSEND和NCBCHAINSEND命令。 11ncb_post 指定异步命令完成后需调用的例程地址。 12ncb_lana_num 指定LANA编号。 13ncb_cmd_cplt 指定命令完成标识。 14ncb_reserve 保留字段,必须为0。 15ncb_event 指定事件对象的句柄。当执行异步命令时,事件对象被设置为未受信状态;当异步命令完成后,事件对象被设置为受信状态,这样就可以执行对应的事件处理程序了。,7.2.3 其他常用NetBIOS结构体,1L

12、ANA_ENUM结构体 2ADAPTER_STATUS结构体 3NAME_BUFFER结构体 4ASTAT结构体,1LANA_ENUM结构体,LANA_ENUM结构体中包含当前逻辑网络适配器的数量。当一个物理网络适配器绑定到一个网络协议时,就对应一个逻辑网络适配器。执行NCB命令NCBENUM可以向LANA_ENUM结构体中填充逻辑网络适配器的个数和逻辑网络适配器编号,此时NCB结构体中的ncb_buffer成员变量指向LANA_ENUM结构体。LANA_ENUM结构体的定义代码如下: typedef struct _LANA_ENUM UCHAR length; UCHAR lanaMAX_

13、LANA; LANA_ENUM, *PLANA_ENUM; 参数说明如下: length,系统中包含的逻辑网络适配器数量。 lanaMAX_LANA,系统中包含的逻辑网络适配器编号数组。,2ADAPTER_STATUS结构体,ADAPTER_STATUS结构体中包含网络适配器的信息。NCB结构体的ncb_buffer成员变量指定该结构体。通常,ADAPTER_STATUS结构体的后面跟着很多NAME_BUFFER结构体。 ADPATER_STATUS结构体的定义代码如下: typedef struct _ADAPTER_STATUS UCHAR adapter_address6; UCHAR

14、rev_major; UCHAR reserved0; UCHAR adapter_type; UCHAR rev_minor; WORD duration; WORD frmr_recv; WORD frmr_xmit; WORD iframe_recv_err; WORD xmit_aborts; DWORD xmit_success; DWORD recv_success;,WORD iframe_xmit_err; WORD recv_buff_unavail; WORD t1_timeouts; WORD ti_timeouts; DWORD reserved1; WORD free

15、_ncbs; WORD max_cfg_ncbs; WORD max_ncbs; WORD xmit_buf_unavail; WORD max_dgram_size; WORD pending_sess; WORD max_cfg_sess; WORD max_sess; WORD max_sess_pkt_size; WORD name_count; ADAPTER_STATUS, *PADAPTER_STATUS;,ADAPTER_STATUS结构体参数说明,adapter_address,指定网络适配器的地址。 rev_major,指定发布软件的主版本号。例如,如果发布版本号为IBM

16、NetBIOS 3.x,则rev_major的值为3。 reserved0,保留字段,始终为0。 adapter_type,指定网络适配器的类型。如果是令牌环适配器,则该值为0xFF;如果是以太网适配器,则该值为0xFE。 rev_minor,指定发布软件的副版本号。例如,如果发布版本号为IBM NetBIOS 3.0,则rev_minor的值为0。 duration,指定报告的时间周期,单位为分钟。 frmr_recv,指定接收到的FRMR(帧拒绝)帧数量。 frmr_xmit,指定传送的FRMR帧数量。 iframe_recv_err,指定接收到的错误帧数量。 xmit_aborts,指定终止传输的包数量。 xmit_success,指定成功传输的包数量。 recv_success,指定成功接收的包数量。 iframe_xmit_err,指定传输的错误帧数量。 rec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号