[工学]第3讲 基于NetBIOS的网络编程-2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第3讲 基于NetBIOS的网络编程-2

第2讲 基于NetBIOS的网络编程 张伟 南京邮电大学信息安全系 内容 NetBIOS的基本概念 NetBIOS命名功能 网络编程设计要素 基本程序 数据报通信程序设计 会话通信程序设计 4 基本程序-NCB控制块 NETBIOS所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。 NetBIOS API的设置非常简单,因为只有一个函数: UCHAR Netbios(PNCB pNCB); 用于N e t B I O S的所有函数声明、常数等等均是在头文件N b 3 0 . h内定义的。若想连接N e t B I O S应用,唯一需要的库是N e t a p i 3 2 . l i b。 n c b -c o m m a n d 指定要执行的N e t B I O S命令。许多命令都可同步或异步与A S Y N C H ( 0 X 8 0 )标志以及命令进行按位O R(或)运算 n c b r e t c o d e f 指定操作的返回代码。在一个异步操作进行期间,函数会将该值设为N R C -P E N D I N G n c b -l s n 对应一个本地会话编号,与当前环境内的一次会话有着唯一对应的关系。成功执行了一次N C B C A L L或N C B L I S T E N命令后,函数会返回一个新的会话编号 n c b -n u m 指定本地名字的编号。伴随N C B A D D N A M E或N C B A D D G R N A M E命令的每一次调用,都会返回一个新编号。针对所有数据报命令,都必须使用一个有效的编号 n c b -b u ff e r 指向数据缓冲区。对那些需要发送数据的命令,该缓冲区包含了要送出的实际数据;而对那些需要接收数据的命令,则包含了要从N e t b i o s函数返回的数据。对其他命令来说,如N C B E N U M,缓冲区便是预定义的结构L A N A E N U M n c b- l e n g t h 以字节数为单位,指定缓冲区的长度。对于接收命令来说, N e t b i o s会将该值设为收到的字节数。若指定的缓冲区不够大, N e t b i o s就会返回N R C- B U F L E N错误 n c b -c a l l n a m e 指定远程应用的名字 n c b- n a m e 指定应用程序已知的名字 n c b- r t o 设定接收操作的超时期限。该值应设为5 0 0毫秒的一个整数倍数。若为1,表示没有超时限制。该值是为N C B- C A L L和N C B -L I S T E N命令设置的,它们会影响后续的N C B- R E C V命令 n c b -s t o 设定发送操作的超时期限。该值应设为5 0 0毫秒的一个整数倍数。若为1,表示不存在超时限制。该值是为N C B -C A L L和N C B- L I S T E N命令设置的,它们会影响后续的N C B- S E N D和N C B- C H A I N S E N D命令 n c b -p o s t 指定异步命令完成后需要调用的后例程的地址。函数定义为: void CALLBACK PostRoutine(PNCB pncb);其中,p n c b指向已完成命令的网络控制块 n c b l- a n a n u m 指定要在上面执行命令的L A N A编号 n c b- c m d c p l 指定操作的返回代码。异步操作进行期间,Netbios会将这个值设为NRC_PENDING n c b -r e s e r v e 保留;必须为0 n c b- e v e n t 指定设置为“未传信”(N o n s i g n a l e d)状态的一个Wi n d o w s事件对象的句柄。完成一个异步命令后,事件便会设置成它的“传信”(S i g n a l e d)状态。只应使用人工重设事件。假若n c b- c o m m a n d未设置A S Y N C H标志,或者n c b p o s t不为0,那么该字段必须为0。否则, N e t b i o s会返回N R C -I L L C M D错误 同步vs异步 调用N e t b i o s函数时,可选择进行同步调用,还是进行异步调用。所有N e t B I O S命令本身均是同步的。换言之,完成命令以前,会一直调用N e t b i o s块。而对一个N C B L I S T E N命令来说,当有一个客户机建立了连接,或发生某种类型的错误时,对N e t b i o s的调用才会返回。 要想异步调用

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档