Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Программа WKSTABLE


Приведем программу, отображающую состояние внутренних таблиц сетевой оболочки. Кроме таблиц отображения дисковых устройств программа показывает содержимое таблицы номеров каналов и таблицы имен файл-серверов, с которыми рабочая станция создала каналы.

Программа WKSTABLE (листинг 8) получает адреса всех таблиц и выводит их в стандартный поток вывода в соответствующем формате. Вы можете подключиться к нескольким серверам и выполнить отображение дисков утилитами attach.exe и map.exe из каталога SYS:PUBLIC, а затем запустить программу и посмотреть содержимое таблиц.

// ============================================================ // Листинг 8. Отображение содержимого таблиц сетевой оболочки. // Файл wkstable\wkstable.cpp // // (C) A. Frolov, 1993 // ============================================================

#include <stdlib.h> #include <stdio.h> #include <dos.h> #include <conio.h>

#define BYTE unsigned char

// Формат таблицы номеров каналов для сетевой оболочки

struct ConnectionIDTable { BYTE InUseFlag; BYTE OrderNumber; BYTE NetworkNumber[4]; BYTE NodeAddress[6]; BYTE SocketNumber[2]; BYTE ReceiveTimeout[2]; BYTE RoutingNode[6]; BYTE PacketSequenceNumber; BYTE ConnectionNumber; BYTE ConnectionStatus; BYTE MaximumTimeout[2]; BYTE Reserved[5]; }; void GetTableAddress(int Table, char far * *TableAddress); void ShowTable(char far *DriveHandleTable); void ShowConnIDTable(struct ConnectionIDTable far *ConnIDTable); void ShowServerNameTable(char far *ServerNameTable);

void main(void) {

// Указатели на таблицы сетевой оболочки

char far *DriveHandleTable; char far *DriveFlagTable; char far *DriveServerTable; char far *ServerMappingTable; char far *ServerNameTable;

struct ConnectionIDTable far *ConnIDTable;

// Получаем указатели на таблицы

GetTableAddress(0, &DriveHandleTable); GetTableAddress(1, &DriveFlagTable); GetTableAddress(2, &DriveServerTable); GetTableAddress(3, &ServerMappingTable); GetTableAddress(4, &ServerNameTable);




Начало  Назад  Вперед