NetBIOS编程指南
NetBIOS(Network Basic Input/Output System)是一种独立于操作系统的局域网编程接口,允许应用程序进行网络通信。NetBIOS提供名字服务、数据报服务和面向连接的服务。在Windows系统中,NetBIOS通常通过SMB(Server Message Block)协议实现。NetBIOS编程的关键知识点包括: 1. **NetBIOS函数**:NetBIOS使用单一函数`netbios()`执行各种操作,参数为指向`NCB`(Network Control Block)结构的指针,包含命令代码、会话号、名字号、数据缓冲区等信息。 2. **NCB结构**:`NCB`结构是NetBIOS编程的核心,主要字段有: - `ncb_command`: 指定NetBIOS命令,如`NCBADDNAME`(增加名字)、`NCBLISTEN`(监听)、`NCBCALL`(呼叫)等。 - `ncb_retcode`: 操作返回代码,指示立即错误。 - `ncb_lsn`: 本地会话号,用于标识面向连接的会话。 - `ncb_num`: 本地名字号,用于无连接的数据报通信。 - `ncb_buffer`: 数据缓冲区,用于发送或接收数据。 - `ncb_length`: 缓冲区长度。 3. **命令执行方式**:NetBIOS命令有同步和异步两种执行方式。同步方式下,`netbios()`函数等命令执行完毕才返回;异步方式下,函数立即返回,通过`ncb_retcode`和`ncb_cmd_cplt`提供命令执行状态。 4. **数据传输**:面向连接的会话中,使用`NCBSEND`和`NCBRECV`发送和接收数据,需要指定本地会话号。无连接的数据报方式中,使用`NCBDGSEND`和`NCBDGRECV`,需要指定本地名字号。 5. **获取MAC地址**:通过执行`NCBENUM`或`NCBSTAT`命令获取网络接口信息,从返回的结构中提取MAC地址。在Windows环境中,可能需结合`iphlpapi`库中的函数进一步处理这些信息。 6. **编程环境**:在Windows环境下,使用Visual C++ 6.0创建Win32 Console Application项目,在源代码中包含`nb30.h`和`wtypes.h`头文件,链接`netapi32.lib`库即可开始NetBIOS编程。 7. **错误处理**:通过NetBIOS的返回码和`NCB`结构中的字段判断命令执行是否成功,并处理可能出现的网络错误。 总的来说,NetBIOS编程涉及网络通信基础知识,包括会话建立、数据传输和错误处理。掌握NetBIOS编程有助于开发需要访问网络硬件信息或进行低级别网络通信的应用程序。
67KB
文件大小:
评论区