cpp приведены определения некоторых функций
void WDeleteName(char *name);
// Функция для определения номера имени
unsigned GetNetworkNameNumber(void) { return(ncb.NetworkNameNumber); }
// Функция для установки адреса и размера буфера
void SetBuffer(char far *Buf, unsigned BufSize) { ncb.Buffer = Buf; ncb.Size = BufSize; }
// Установка в ncb имени вызываемого партнера
void SetCallName(char *name);
// Прием датаграмм с ожиданием
void WReceiveDatagram(int NetwrkNameNumber) {
// Заполняем поле номера своего имени
ncb.NetworkNameNumber = NetwrkNameNumber;
// Вызываем NETBIOS
ncb.Cmd = NB_WReceiveDatagram; NetBios(); }
// Передача датаграмм с ожиданием
void WSendDatagram(int NetwrkNameNumber) {
// Заполняем поле номера своего имени
ncb.NetworkNameNumber = NetwrkNameNumber; ncb.Cmd = NB_WSendDatagram;
// Вызываем NETBIOS
NetBios(); }
};
В файле nbfunc. cpp приведены определения некоторых функций из класса NCB (листинг 21):
// =================================================== // Листинг 21. Функции для NETBIOS // // Файл nbfunc.cpp // // (C) A. Frolov, 1993 // ===================================================
#include <stdio.h> #include <stdlib.h> #include <dos.h> #include <conio.h> #include <mem.h> #include <string.h> #include "netbios.hpp"
// Добавляем имя
void NCB::WAddName(char *name) { char buf[16];
// Проверяем длину имени
if(strlen(name) > 15) { errno = 0xff; return; } strcpy(buf, name);
// При необходимости дополняем имя пробелами
while (strlen(buf) < 15) strcat(buf, " ");
// Вызываем NETBIOS
ncb.Cmd = NB_WAddName; strcpy(ncb.OurName, buf); NetBios(); errno = ncb.FinalCCode; }
// Удаление имени
void NCB::WDeleteName(char *name) { char buf[16];
// Проверяем длину имени
if(strlen(name) > 15) { errno = 0xff; return; } strcpy(buf, name);
// При необходимости дополняем имя пробелами
while (strlen(buf) < 15) strcat(buf, " ");
strcpy(ncb.OurName, buf);
// Вызываем NETBIOS
ncb.Cmd = NB_WDeleteName; NetBios(); errno = ncb.FinalCCode; }
// Установка имени вызываемого партнера
void NCB::SetCallName(char *name) { char buf[16]; if(strlen(name) > 15) { errno = 0xff; return; } strcpy(buf, name); while (strlen(buf) < 15) strcat(buf, " "); strcpy(ncb.CallName, buf); }
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий