С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
46 / 112 / 11
Регистрация: 24.04.2019
Сообщений: 760

Сервер SMB не отвечает

23.11.2024, 23:59. Показов 10520. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь согласовать протокол с SMB сервером. Данные отправляются, но ответ не приходит. Через 20 секунд разрывает соединение. Файрвол отключать пробовал. Может кто-то сталкивался с таким?

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
int main()
{
    
    WSADATA WSAData;
    SOCKET server;
    SOCKADDR_IN addr;
    char buffer[2048];
 
    WSAStartup(MAKEWORD(2, 0), &WSAData);
    if((server = socket(AF_INET, SOCK_STREAM, 0))==INVALID_SOCKET)
    {
        std::cout << "Socket creation failed with error: " << WSAGetLastError() << std::endl;
        return -1;
    }
 
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    addr.sin_family = AF_INET;
    addr.sin_port = htons(445);
    if(connect(server, (SOCKADDR*)&addr, sizeof(addr))==SOCKET_ERROR)
    {
        std::cout << "Server connection failed with error: " << WSAGetLastError() << std::endl;
        return -1; 
    }
 
    unsigned char packet_data[106];
 
    memset(packet_data, 0, 106);
 
    unsigned char *pBuf = packet_data;
    unsigned short *pShort = 0;
    unsigned long *pLong = 0;
    long long *pLlong = 0;
 
    pBuf += 1;
    short res = htons(102);
    pShort = (unsigned short*)pBuf;
    *pShort = (short)res;
    pBuf += 3;
 
    pLong = (unsigned long*)pBuf;
    *pLong = (unsigned long)0x424d53fe;  //protocolId
    pBuf += 4;
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)64;       //size
    pBuf += 10;
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)2;        //creditRequest
    pBuf += 10;
    pLlong = (long long*)pBuf;
    *pLlong = (long long) 0;            //messageId
    pBuf += 40;
 
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)36;       //size
    pBuf += 2;
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)1;        //dialectCount
    pBuf += 2;
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)1;        //securityMode
    pBuf += 4;
    pLong = (unsigned long*)pBuf;
    *pLong = (unsigned long)0;          //capabilities
    pBuf += 4;
    unsigned char guid [16] {0xf6, 0xc0, 0xf6, 0xc5, 0x43, 0x0D, 0xc8, 0x90, 0x4f, 0x60, 0xab, 0xe8, 0x22, 0x34, 0x52, 0x00};
    //memcpy(pBuf, guid, 16);           //guid
    pBuf += 24;
    pShort = (unsigned short*)pBuf;
    *pShort = (unsigned short)0X0202;    //dialect    
 
    if(send(server, (const char*)packet_data, 106, 0)==SOCKET_ERROR)
    {
        std::cout << "Send failed with error: " << WSAGetLastError() << std::endl;
        return -1;
    }
 
    if(recv(server, buffer, sizeof(buffer), 0)==SOCKET_ERROR)
    {
        std::cout << "Recv failed with error: " << WSAGetLastError() << std::endl;
        return - 1;
    }
 
    //SMB2NegotiateResponsePacket *pPacket = (SMB2NegotiateResponsePacket *)&buffer;
    //std::cout << "Dialect : " << pPacket->mesResp.dialectRevision;
        
    WSACleanup();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2024, 23:59
Ответы с готовыми решениями:

Smb сервер, а точнее только авторизация
Нужно написать сервер, проводящий авторизацию. Тоесть доступ и работа с файлами не нужна. Конкретно c++ не обязателен, но так удобнее всего.

Сервер не отвечает на запрос
Здравствуйте, столкнулся со следующей проблемой. Пытаюсь сформировать запрос подобный браузерному и отправить его на сервер. Если верить...

Прокси сервер не отвечает
Всем привет! никак не могу разобраться, почему моя программа не хочет работать... вот исходный код программы: ...

2
46 / 112 / 11
Регистрация: 24.04.2019
Сообщений: 760
24.11.2024, 12:23  [ТС]
Разобрался.

If Connection.NegotiateDialect is 0x0202, 0x0210, 0x0300, 0x0302, or 0x0311, the server MUST disconnect the connection, as specified in section 3.3.7.1, and not reply.
Я обожаю Microsoft...
0
46 / 112 / 11
Регистрация: 24.04.2019
Сообщений: 760
13.12.2024, 17:47  [ТС]
Цитата Сообщение от Дмитрий_1982 Посмотреть сообщение
Разобрался
А, нет. Это я не правильно читаю документацию. Если диалект уже задан, то сервер отвечать не должен. Так что вопрос остается открытым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2024, 17:47
Помогаю со студенческими работами здесь

[Qt5]QxtWeb, сервер из примера не отвечает
Доброе время суток. Возникла необходимость набросать простенький REST сервис, писать свои велосипеды не захотелось и нашел библиотеку...

NTFS/SMB сервер
Всем привет. Столкнулся с проблемой в курсовом проекте по сетям (тема - построение ЛКС). По условию, заказчику нужен NTFS/SMB сервер для...

SMB-сервер под Windows
Добрые времена суток, форумчане. Интересует вопрос: есть ли альтернативы встроенному решению самбы под окошки? Стоковый сервер...

Виртуальный сервер 2012r2 и проблема с SMB
Приветствую всех. Имеется такая ситуация и проблема с ней. Сразу говорю, что сталкиваюсь с виртуальным сервером впервые. Значит приобрели...

Как установить и настроить smb-сервер?
Приветствую, камрады! В общем понадобилось мне установить и настроить samba-сервер. Часть задания я сделал, а часть не получается. Прошу...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru