亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

利用NetBIOS進行Windows網絡編程

2023-06-06 12:10:45
字體:
來源:轉載
供稿:網友

本文介紹了NetBIOS編程的一些基本概念,并通過一個異步事件服務器和一個異步事件客戶機的例子,詳細說明了NetBIOS進行Windows編程的基本方法。文中涉及的程序在Windows98環境下,由VC++6.0編譯通過。

“網絡基本輸入/輸出系統”(Network Basic Input/Output System,NetBIOS)是1983年由Sytex公司為IBM公司開發的一種標準應用程序編程接口,并被微軟采用。1985年,IBM改進了NetBIOS,推出了NetBIOS擴展用戶接口(NetBIOS Extended User Interface,NetBEUI)通信協議,它占用內存少,配置簡單,適用于小型局域網不同計算機之間的通信,但不具有跨網段工作的能力,不支持路由機制。NetBIOS是一種與“協議無關”的編程接口,它使應用程序不用理解網絡細節,應用程序可通過TCP/IP、NetBEUI、SPX/IPX運行。下面我們介紹以下NetBIOS編程用到的一些重要概念及其實現方法。

一、理解NetBIOS

1、 LANA編號

理解LAN適配器(LAN Adapter,LANA)編號是NetBIOS進行網絡編程的關鍵所在。網絡的傳輸協議是通過LANA編號同NetBIOS對應起來,每個LANA編號對應于網卡及傳輸協議的唯一組合。因此,我們在編程時要注意,兩臺要進行通信計算機必須至少安裝有同一種協議,并且這兩臺計算機通信所依賴的LANA編號對應的網絡協議要相同,否則即使這兩臺計算機安裝相同的協議也無法進行通信。LANA編號范圍在0到9之間,其中,LANA 0代表默認的LANA。

2、 NetBIOS名字

NetBIOS名字可分為兩種類型:唯一名字(Unique Name)和組名(Group Name)。顧名思義,唯一名字只允許一臺計算機注冊該名字,一旦唯一名字注冊成功,其他計算機如果再注冊該名字,就會出現:“名字重復”的錯誤,微軟網絡中的機器名采用的就是NetBIOS唯一名字。組名則是一組計算機的總稱,可以用來接收發給這一組計算機的數據。值得注意的是:組名可以和唯一名字同名,這會引起發送或接收數據的目的出現錯誤!NetBIOS名字長度為16個字符,其中第16個字符用于區分不同的網絡服務。關于計算機注冊NetBIOS名字的信息可以利用Nbtstatming令查看。

3、 NetBIOS提供的服務

NetBIOS提供兩種服務:面向連接的服務和數據報服務(無連接)。面向連接的服務為兩臺需要進行通信的計算機建立一個連接,并利用錯誤探測和恢復機制保證數據在通信的兩端準確無誤的傳輸,它適于傳輸比較長的消息。對于NetBIOS,服務器在對想通過它建立通信的LANA編號上注冊,而對于位于其他計算機上的客戶機會搜索服務器注冊的名字,并將它解析為機器名,然后發出進行通信的請求。

數據報服務是無連接的,因而它不能保證數據有序、正確的傳輸,但它可以節省建立連接的開銷,它適合短消息的傳輸。在NetBIOS中,客戶機只是將發送數據的目的地定義為服務器注冊的進程名,而不進行任何連接。

二、NetBIOS編程的實現

NetBIOS的所有函數聲明、常數都在頭文件“Nb30.h”中定義,在編程時還須與Netapi32.lib庫進行鏈接。NetBIOS接口通過一個函數實現:

UCHAR Netbios (PNCB pNCB);

其中,參數pNCB指向一個網絡控制塊(Net Control Block,NCB)指針,NCB結構如下:

typedef struct _NCB {
            UCHAR ncb_command; // NetBIOSming令
            UCHAR ncb_retcode; // 指定操作的返回代碼 
            UCHAR ncb_lsn; // 本地會話編號 
            UCHAR ncb_num; // 本地名字編號 
            PUCHAR ncb_buffer; // 數據緩沖區地址 
            WORD ncb_length; // 緩沖區長度 
            UCHAR ncb_callname[NCBNAMSZ]; // 遠程應用程序名
            UCHAR ncb_name[NCBNAMSZ]; // 本地應用程序名 
            UCHAR ncb_rto; // 接收操作延時
            UCHAR ncb_sto; // 發送操作延時
            void (CALLBACK *ncb_post)( struct _NCB * );

    // 異步ming令完成后需調用的后例程地址 
            UCHAR ncb_lana_num; // LANA 編號
            UCHAR ncb_cmd_cplt; // 指定操作的返回代碼 
            UCHAR ncb_reserve[10]; // 保留字段 
            HANDLE ncb_event; // Win32事件句柄
        } NCB, *PNCB;

此外,編程時應注意調用NetBIOS函數的同步和異步問題。NetBIOSming令調用本身均為同步,即在完成指定ming令之前,會一直調用NetBIOS模塊。而在實際編程時,我們通常需要進行異步調用,即希望允許多個客戶機同時與服務器進行連接,這就需要讓NetBIOSming令與異步標志邏輯或(OR)操作,但必須在ncb_post字段中指定一個后例程,或在ncb_event字段中指定一個事件句柄。

下面,我以實現一個異步事件服務器和一個異步事件客戶機為例,具體說明NetBIOS的編程實現,其中,服務器接收由客戶機發送的數據。

1、 異步事件服務器的實現

首先,我們進行初始化工作,列舉可用的LANA編號,并重設:

if (LanaEnum(&lenum) != NRC_GOODRET)
            return 1;
        if (ResetAll(&lenum, (UCHAR)MAX_SESSIONS, (UCHAR)MAX_NAMES,FALSE) != NRC_GOODRET)
            return 1;

&lenum是一個LANA_ENUM結構變量,其定義如下:

typedef struct LANA_ENUM
        {
            UCHAR length ;
            UCHAR lana[MAX_LANA+1] ;
       } LANA_ENUM, *PLANA_ENUM;

其中,length指出本地計算機可用的LANA的數量,lana表示由這些LANA編號組成的一個數組。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91一区| 亚洲成人av片在线观看| 日韩视频永久免费观看| 性色av一区二区三区免费| 欧美性少妇18aaaa视频| 久久影院资源站| 午夜精品一区二区三区在线视频| 亚洲黄色免费三级| 久久精品国产成人| 亚洲欧洲在线观看| 精品无人区太爽高潮在线播放| 日韩精品有码在线观看| 人人爽久久涩噜噜噜网站| 日韩av电影手机在线| 91九色国产视频| 国产精品视频不卡| 精品久久在线播放| 精品国产一区二区三区四区在线观看| 免费成人高清视频| 日韩欧美aⅴ综合网站发布| 日韩电影大全免费观看2023年上| 国产精品va在线| 日韩av在线网页| 国产精品wwww| 欧美日韩激情视频8区| 国产精品日韩欧美| 91精品国产九九九久久久亚洲| 欧美做受高潮1| 91热精品视频| 欧美日韩久久久久| 国产丝袜一区二区三区免费视频| 欧美日韩亚洲视频一区| www日韩中文字幕在线看| 久久综合88中文色鬼| 亚洲美女精品久久| 国产精品久久久久久亚洲调教| 国产999在线观看| 亚洲欧洲视频在线| 国产亚洲精品久久久久久牛牛| 久久噜噜噜精品国产亚洲综合| 国产精品视频午夜| 国产日韩欧美在线观看| 欧美福利视频在线观看| 91久久久久久久久久久久久| 国产精品丝袜白浆摸在线| 亚洲精品白浆高清久久久久久| 精品久久久久久久久久久久久久| 中文字幕亚洲欧美日韩高清| 日韩精品视频免费在线观看| 国产精品一区av| 欧美性猛交xxxx免费看久久久| 亚洲电影av在线| 日韩精品中文字幕在线播放| 亚洲激情视频网| 亚洲奶大毛多的老太婆| 97色在线观看免费视频| 欧美激情亚洲综合一区| 欧美成人激情视频免费观看| 亚洲理论在线a中文字幕| 在线观看欧美日韩国产| 亚洲综合日韩在线| 亚州精品天堂中文字幕| 一区二区三区视频免费在线观看| 97精品一区二区视频在线观看| 亚洲欧洲国产一区| 国内精品久久久久伊人av| 日韩毛片中文字幕| 91av视频在线免费观看| 91av视频在线免费观看| 伊人久久五月天| 欧美二区乱c黑人| 欧美裸体xxxx极品少妇软件| 国自产精品手机在线观看视频| 国产成人精品999| 精品久久久久久久久中文字幕| 久久久欧美一区二区| 国产精品久久久久久久久久99| 亚洲第一区第一页| 97视频在线观看视频免费视频| 欧美激情小视频| 91精品在线播放| 中文字幕av一区| 亚洲码在线观看| 国产精品私拍pans大尺度在线| 精品国内自产拍在线观看| 国产精品激情自拍| 欧美性猛交xxxx黑人| 亚洲国产成人精品女人久久久| 91视频免费网站| 久久精品成人欧美大片古装| 国产精品久久久久久久久久| 国产成人精彩在线视频九色| 国产综合香蕉五月婷在线| 国产精品视频久| 午夜伦理精品一区| 成人美女av在线直播| 51视频国产精品一区二区| 青青在线视频一区二区三区| 国产精品久久综合av爱欲tv| 欧美最顶级丰满的aⅴ艳星| 国产丝袜一区二区三区免费视频| 国产精品一区二区久久| 亚洲国产精彩中文乱码av在线播放| 在线观看不卡av| 亚洲图片在区色| 亚洲二区中文字幕| 日韩美女写真福利在线观看| 色噜噜狠狠狠综合曰曰曰88av| 亚洲无av在线中文字幕| 国产成人精品一区二区三区| 欧美又大又粗又长| 中文字幕久久精品| 国产精品高精视频免费| 国产性猛交xxxx免费看久久| 午夜精品一区二区三区av| 97超级碰碰人国产在线观看| 欧美黄色片免费观看| 91综合免费在线| 国产一区二区欧美日韩| 精品国产老师黑色丝袜高跟鞋| 欧美黄色片在线观看| 久久精品一偷一偷国产| 77777少妇光屁股久久一区| 51午夜精品视频| 91在线中文字幕| 7m第一福利500精品视频| 7777kkkk成人观看| 欧美裸体xxxx极品少妇| 青草青草久热精品视频在线网站| 日韩电影第一页| 日韩av免费在线播放| 久久精品视频va| 午夜精品久久久久久久99热浪潮| 成人精品在线观看| 亚洲激情自拍图| 亚洲国产成人精品久久久国产成人一区| 欧美激情在线观看| 精品中文字幕在线2019| 国产精品96久久久久久又黄又硬| 国产69久久精品成人| 51久久精品夜色国产麻豆| 日韩在线视频免费观看| 国产美女精品视频免费观看| 日韩精品免费综合视频在线播放| 国内伊人久久久久久网站视频| 欧美日产国产成人免费图片| 一本久久综合亚洲鲁鲁| 中文字幕在线精品| 久久福利网址导航| 国产亚洲精品久久久| 亚洲小视频在线观看| 欧美成人高清视频| 隔壁老王国产在线精品| 久久免费国产精品1| 日韩欧美国产成人| www.99久久热国产日韩欧美.com| 7777精品久久久久久| 久久精品国产96久久久香蕉| 国产亚洲欧洲在线| 日韩电影中文字幕| 91影院在线免费观看视频| 亚洲一区二区久久| 91精品国产乱码久久久久久久久| 亚洲国产高清福利视频|