熱點推薦:
您现在的位置: 電腦知識網 >> 網絡技術 >> 正文

NetBIOS特性與編程基礎

2022-06-13   來源: 網絡技術 

  NetBIOS同時提供了面向連接服務以及無連接服務面向連接的服務是指它允許兩個客戶機相互間建立一個會話或者說建立一個虛擬回路這種會話實際是一種雙向的通信數據流通信的每一方都可向另一方發送消息面向連接的服務可擔保在兩個端點之間任何數據都能准確無誤的傳遞在這種服務中服務器通常將自己注冊到一個已知的名字下客戶機會搜尋這個名字以便建立與服務器的通信就拿NetBIOS的情況來說服務器進程會針對想通過它建立通信的每一個LANA編號將自己的名字加入與其對應的名字表而對於其他機器上的客戶來說就可將一個服務名解析成機器名然後要求同服務器進程建立連接大家可以看到為建立這種虛擬回路必須采取一些適當的步驟而且在初次建立連接的時候還會牽涉到一些額外的開銷面向連接面向會話的通信可保證通信具有極高的可靠性而且數據包的收發順序也能保證正確無誤然而它仍然是一種以消息為基礎的服務也就是說假如已連接好的某個客戶機執行一個命令那麼服務器在流中仍然只會返回一個數據包——盡管客戶機此時提供了一個足夠大的緩沖區可同時容下幾個包!
    無連接或數據報服務中服務器並不將自己注冊到一個特定的名下而只是由客戶機收集數據然後將其送入網絡事前不必建好任何連接(即無連接)對於數據的目的地址客戶機會將其定義成服務器相應進程對應的NetBIOS名字這種類型的服務不提供任何保障但同面向連接的服務相比卻可有更好的性能如在使用數據報服務時省下了建立連接所需的開銷例如客戶機可能向服務器興沖沖的一下子發出數千字節的數據但那台服務器早在一兩天前便已當機了除非依賴自服務器傳來的響應否則客戶機永遠都收不到任何錯誤提示
  
    現在我們已理解了NetBIOS的一些基本概念接下來要討論的是NetBIOS的設置只有一個函數
  
    UCHAR Netbios(PNCB pNCB);
  
    用於NetBIOS的所有函數聲明常數等等均是在頭文件Nbh內定義的若想連接NetBIOS應用唯一需要的是庫Netapilib該函數最重要的特征便是pNCB這個參數她對應於指向某個網絡控制塊(NCB)的一個指針在那個NCB結構中包含了為執行一個NetBIOS命令相應的NetBIOS函數需要用到的全部信息該結構的定義如下
  
  typedef struct _NCB
  
  { UCHAR ncb_command;
  
  UCHAR ncb_retcode;
  
  UCHAR ncb_lsn;
  
  UCHAR ncb_num;
  
  PUCHAR ncb_buffer;
  
  WORD ncb_length;
  
  UCHAR ncb_callname[NCBNAMESZ];
  
  UCHAR ncb_name[NCBNAMEZ];
  
  UCHAR ncb_rto;
  
  UCHAR ncb_sto;
  
  void (*ncb_post)(struct _NCB *);
  
  UCHAR ncb_lana_num;
  
  UCHAR ncb_cmd_cplt;
  
  UCHAR ncb_reserve[];
  
  HANDLE ncb_event;
  
  }* PNCBNCB
  
  
    進行任何NetBIOS調用之前不要一開始就填寫結構內成員而應先將這個NCB結構清零

From:http://tw.wingwit.com/Article/Network/201311/29948.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.