Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
SENDEJER
3 / 3 / 1
Регистрация: 22.05.2013
Сообщений: 309
#1

Прокомментировать код работы с NETBIOS - C++

27.06.2015, 23:24. Просмотров 302. Ответов 0
Метки нет (Все метки)

есть код
помогите пожалуйста в нём разобраться (по блочно можете прокоментировать? очень нужно )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "windows.h"
#include "NB30.h"
 
 
#define CLIENT_NAME "myclient"
#define SERVER_NAME "myserver"
#define MAX_SESSION  50  
#define MAX_NAMES    50
#define LANA_NUM 000
 
 
void ClearStruct(PNCB  ncb_name);
void ClearField(char* field_name,size_t size_struct);
void Connect(PNCB pncb);
UCHAR AddNetBiosName(UCHAR ucLanaNum,char* ucNetName);
UCHAR ResetNetBios();
UCHAR AddNetBiosName();
 
 
void main()
{
    LANA_ENUM   lenum;      
    HANDLE     *events;     
    NCB         ncb;        
    BOOL        done;
    int         conn; 
        
        events = (HANDLE *)GlobalAlloc(GMEM_FIXED, sizeof(HANDLE) lenum.length);
        ClearStruct(&ncb);
        events[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
        ncb.ncb_event = events;
 
        // Инициализайия LANA 
        if (ResetNetBios(LANA_NUM)!=NRC_GOODRET) printf("Error Reset \n");
        else printf("God Reset\n");
 
        // Добавление имени
        if (AddNetBiosName(LANA_NUM,CLIENT_NAME)!=NRC_GOODRET) printf("Error Add \n");
        else printf("God Add Name\n");
        
        // Установка связи
        Connect(&ncb);
        done=FALSE;
 
 
        while (!done)
        {
        conn = WaitForMultipleObjects(lenum.length, events, FALSE, INFINITE);
 
        if (ncb.ncb_retcode == NRC_GOODRET)
            {
                printf("CONNECTED! \n");
                done = TRUE;
            }
         }
 
}
 
 
UCHAR ResetNetBios(UCHAR ucLanaNum)
{
    NCB ncb;
    UCHAR uRetCode;
    ClearStruct(&ncb);
    ncb.ncb_lsn = 0;                
    ncb.ncb_lana_num = ucLanaNum;
    ncb.ncb_callname[0] = MAX_SESSION;  
    ncb.ncb_callname[2] = MAX_NAMES;  
    ncb.ncb_command=NCBRESET;
    uRetCode = Netbios((NCB*) &ncb );
    return uRetCode;
}
 
UCHAR AddNetBiosName(UCHAR ucLanaNum,char* ucNetName)
{
    NCB     ncb;
    UCHAR     dwRetCode;
    ClearStruct(&ncb);
    FillMemory(ncb.ncb_name, sizeof(ncb.ncb_name), ' ');
    CopyMemory(ncb.ncb_name, ucNetName, strlen(ucNetName));
    ncb.ncb_lana_num = ucLanaNum;
    ncb.ncb_command = NCBADDNAME;
    dwRetCode = Netbios(&ncb);
    return dwRetCode;
}
 
void Connect(PNCB pncb)
{
     int     dwRetCode;
     FillMemory(pncb->ncb_name, sizeof(pncb->ncb_name), ' ');
     CopyMemory(pncb->ncb_name, CLIENT_NAME, strlen(CLIENT_NAME));
     FillMemory(pncb->ncb_callname, sizeof(pncb->ncb_callname), ' ');
     CopyMemory(pncb->ncb_callname, SERVER_NAME, strlen(SERVER_NAME));
     pncb->ncb_command = NCBCALL | ASYNCH;
     dwRetCode = Netbios(pncb);
     if (pncb->ncb_retcode != NRC_PENDING) printf("Error Connect\n");
     return;
}
 
 
void ClearStruct(PNCB  ncb_name)
{
    memset (ncb_name,0, sizeof(NCB));
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2015, 23:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прокомментировать код работы с NETBIOS (C++):

Прокомментировать код - C++ Builder
Доброго времени суток,возникла такая проблема никак не могу разобраться с кодами, помогите прокомментировать коды..... #include...

Прокомментировать код C++ builder 6 - C++ Builder
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include...

Ошибка с получением Mac-адреса сетевого адаптера вызовом NetBIOS - C++ Builder
Пытаюсь запустить консольку, разработаную в VS в Buildere. Компилируется без ошибок, но и адрес карты не выдаёт (Ошибка инициализации). ...

Оптимизировать код работы с однотипными компонентами - C++ Builder
Есть код прямиком из преисподней:DЭто чудо работает, и даже может создавать адекватные запросы : int...

Netbios - Visual C++
Подскажите пожалуйста какие библиотеки подходят для работы с Netbios'ом в VS. Ибо netbios.h, nb.h и ncmd.h не работают. Добавлено...

Прокомментировать код - C++
Прокомментируйте, пожалуйста, код. Не совсем понимаю, что происходит внутри функции rec. int a, b, k, n; void rec(int x, int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2015, 23:24
Привет! Вот еще темы с ответами:

Прокомментировать код - C++
Здравствуйте! Пожалуйста, как можно яснее откомментируйте коды программ, очень нужно для понимания, чтобы разобраться.. пожалуйста.. 1...

Прокомментировать код - C++
#include <iostream> using namespace std; static const int N = 1000; int main() { int i, a; for (i = 2; i < N; i++)...

Прокомментировать код - C++
Как это работает? #include <QDebug> int main() { int mass; mass = 1; mass = 2;

Прокомментировать код - C++
что означают строчки начиная с int k =-1; #include "iostream" #include "math.h" using namespace std; int main () { const int n =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru