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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Доступ к видеобуферу для перекрытия окон http://www.cyberforum.ru/cpp/thread1488702.html
Здравствуйте. Где то читал, что на компьютере есть видео буфер, с которого все и выводится на экран. И вроде как к этому видео буферу можно получить доступ низкоуровневыми программами, вроде как и...
C++ Изменение параметров изображения в зависимости от положения ползунка (Opencv) Помогите пожалуйста написать класс, который будет изменять яркость, насыщенность и цветовую гамму изображения в зависимости от положения ползунка http://www.cyberforum.ru/cpp/thread1488530.html
C++ Как прикрутить компилятор к Notepad++?
Может вопрос окажется глупым, но всё же В Notepad++ ввожу самый простой код для с++, жму F5 и вылазит табличка( не понятно что в ней выбирать), жму запуск и ничего не происходит. Подскажите как...
C++ Старый добрый COMPORT
Как же надоели эти ком порты, уже неделю занимаюсь с ними а толку ноль. У меня C++ Bulder. Собственно никаких элементов управления для работы с ком портами у меня нет. Находил видео как чувак...
C++ Где можно скачать компонент ComPort? http://www.cyberforum.ru/cpp/thread1486579.html
Где можно скачать компонент ComPort? Весь гугл перерыл, ничего толкового найти не удалось. Самое нормальное нашёл тут http://www.torry.net/quicksearchd.php?String=comport&Title=Yes но это триал,...
C++ Определить резидентные драйверы в памяти компьютера /*--------------"Просмотр списка драйверов."--------------*/ #include <dos.h> #include <conio.h> /*-----------------------Константы----------------------- */ #define byte unsigned char #define... подробнее

Показать сообщение отдельно
SENDEJER
3 / 3 / 1
Регистрация: 22.05.2013
Сообщений: 312

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

27.06.2015, 23:24. Просмотров 319. Ответов 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));
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru