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

Онлайн видео ветеринар 24 часа.              

C Interface, поэтому опишем ее



Листинг 6

Подключение к серверу // Файл log\log.c // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "nit.h" // include-файлы из библиоткеи #include "niterror.h" // NetWare C Interface // Эта функция не описана в include-файлах // библиотеки NetWare C Interface, поэтому опишем ее сами. void GetServerInformation(int, FILE_SERV_INFO*);
void main(void) { int ccode; char ServerName[48]; char UserName[48]; char Password[128]; WORD ConnID, ConnNumber; char companyName[80], revision[80]; char revisionDate[24], copyrightNotice[80]; FILE_SERV_INFO serverInfo; BYTE newDirectoryHandle, effectiveRightsMask; char driveLetter; char MajorVersion=0; char MinorVersion=0; char Revision=0; printf("NetWare Login, (C) Фролов А.В., 1993\n");
asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision);
asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n");
return; } // Получаем номер канала, используемого сервером // по умолчанию (default) для связи с рабочей станцией, на // которой была запущена эта программа ConnNumber = GetConnectionNumber();
// Получаем имя файл-сервера, используемого по умолчанию (default) GetFileServerName(0, ServerName);
// Выводим имя и номер канала для // сервера, используемого по умолчанию if(ConnNumber) printf("Сервер по умолчанию '%s', ConnNumber=%04.4X\n", ServerName, ConnNumber);
// Вводим имя сервера, имя пользователя и пароль. // Преобразуем все введенные буквы в заглавные. printf("\nВведите имя сервера: ");
gets(ServerName);
strupr(ServerName);
printf("\nВведите ваше имя: ");
gets(UserName);
strupr(UserName);
printf("\nВведите пароль: ");
gets(Password);
strupr(Password);
// Создаем канал с сервером ccode = AttachToFileServer(ServerName, &ConnID);
// Если канал удалось создать или он уже был создан раньше, // выводим имя сервера и номер канала, используемого // на рабочей станции для идентификации сервера. if(ccode == 0 || ccode == ALREADY_ATTACHED_TO_SERVER) { printf("\nServerName='%s', ServerID=%04.4X", ServerName, ConnID);
// Делаем данный сервер предпочтительным для того, // чтобы все запросы направлялись к нему в первую очередь SetPreferredConnectionID(ConnID);
// Подключаем пользователя к файл-серверу ccode = LoginToFileServer(UserName,OT_USER,Password);
if(!ccode) { // Если подключение произошло успешно, проверяем, есть ли // у подключившегося пользователя права оператора консоли if(!CheckConsolePrivileges()) printf("Вы оператор консоли\n");
// Получаем строки описания сервера и выводим их // в стандартный поток GetFileServerDescriptionStrings(companyName, revision, revisionDate, copyrightNotice);
printf("Описание сервера:\n%s\n%s\n\n%s\n%s\n", companyName,revision, revisionDate, copyrightNotice);
// Получаем информацию о сервере, выводим максимальное количество // пользователей, которые могут подключиться к // данному файл-серверу. GetServerInformation(sizeof(serverInfo), &serverInfo);
printf("Версия на %d пользователей\n", serverInfo.maxConnectionsSupported);
// Делаем данный сервер первичным. SetPrimaryConnectionID(ConnID);
// Отображаем диск S: рабочей станции на // корневой каталог тома SYS: сервера driveLetter = 'S'; ccode = AllocPermanentDirectoryHandle(0,"SYS:\\", driveLetter, &newDirectoryHandle,&effectiveRightsMask);
printf("Диск отображен, код CCode = %d\n",ccode);
} } else { printf("Ошибка при подключении: %04.4X\n",ccode);
return; } }

Содержание  Назад  







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий