1、netBIOS
非可路由協議
LAN適配器(LAN? adapter)編號很重要.
每個LANA編號對應于網卡和傳輸協議的唯一組合。
netBIOS名字
在Wi n 3 2環境中,針對每個可用的L A N A編號,每
個進程都會為其維持一張N e t B I O S名字表。若為LANA 0增添一個名字,意味著你的應用程序
只能在LANA 0上同客戶機建立連接。對每個L A N A來說,能夠添加的名字的最大數量是2 5 4,
編號從1到2 5 4(0和2 5 5由系統保留)
,N e t B I O S名字共有兩個性質:唯一名字和組名
微軟網絡中的機器命名就是NetBIOS命名。
“組名”的作用是將數據同時發給多個接收者;或者相反,接收發給多個
接收者的數據。組名并非一定要“獨一無二”,它主要用于多播(多點發送)數據通信
若有“windows互聯網命名服務器”即wins,則有它管理,若無則發廣播探測是否重名。
1.1.3 NetBIOS特性
N e t B I O S同時提供了“面向連接”服務以及“無連接”服務。
1.2 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 e t b i o s函數時,可選擇進行同步調用,還是進行異步調用。所有N e t B I O S命令本身均是同步的。要想異步調用一個命令,需要讓N e t B I O S命令同A S Y N C H標志進行一次邏輯O R(或)運算。如指定了A S Y N C H標志,那么必須在n c b _ p o s t字段中指定一個后例程(Post Routine),或必須在n c b _e v e n t字段中指定一個事件句柄。執行一個異步命令時,從N e t b i o s返回的值是N R C _ G O O D R E T( 0 x 0 0 ),但n c b _ c m d _ c p l t字段會設為N R C _ P E N D I N G ( 0 x F F )。除此以外, N e t b i o s函數還會將N C B結構的n c b _ c m d _ c p l t字段設為N R C _ P E N D I N G(待決),直到命令完成為止。命令完成后,n c b _ c m d _ c p l t字段會設為該命令的返回值。N e t b i o s也會在完成后將n c b _ r e t c o d e字段設為命令的返回值。
1.4 數據報的工作原理
“數據報”(D a t a g r a m)屬于一種“無連接”的通信方法。作為發送方,只需用目標
N e t B I O S名字為發出的每個包定址,然后簡單地送出了事。此時,不會執行任何檢查,以確
保數據的完整性、抵達順序或者傳輸的可靠性等等。
發出一個數據報共有三種方式。
第一種是指揮數據報抵達一個特定的(或唯一的)組名。這意味著只能有一個進程負責數據報的接收—亦即注冊了目標名字的那個進程。
第二種是將數據報發給一個組名。只有注冊了指定組名的那些進程才有權接收消息。
最后,第三種方式是將數據報廣播到整個網絡。