Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742

NetBIOS ф-ии Send и Receive

05.04.2014, 23:34. Показов 3332. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При операциях с NetBios есть две функции SEND (которая отправляет) и RECEIVE (которая принимает) по заранее уже установленному соединению, их прототипы:

int SEND(int lsn, void * buf, int len)

int RECEIVE(int lsn, void * buf, int len)

где lsn - номер сеанса, *buf - содержимое буфера а len - длина буфера


Однако вызов из main'a ф-ии SEND:

SEND( lsn_cur, message, strlen(message) );

где message - массив char

И работает... но это хорошо при передаче строки, а если я хочу передать int или float?!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.04.2014, 23:34
Ответы с готовыми решениями:

Receive/send text/buf в чем разница?
Вообщем интересует именно разница в: WideString uMsg = Socket->ReceiveText(); и char *uMsg = new char; ...

Socket.Send.Receive - Сообщение делится на фрагменты произвольной длины
клиент шлет массив байт(с <eof>), на сервере дописывается имя клиента в начало массива и возвращается клиенту. Почему сообщение не...

Чат. При активации функции Send на клиенте, сообщение должно попасть в функцию Receive сервера
привет всем. у меня есть проект чат,который срочно нужно сделать. передача сообщений идет посредством NetworkStrem и BinaryFormatter....

22
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
08.04.2014, 15:20
Студворк — интернет-сервис помощи студентам
А как Вы себе это представляете?

Кликните здесь для просмотра всего текста

Ответ и да и нет:
1. Нет. Вы передаете массив байт в любом случае, т.к функции обработчику все равно, что там int/char/string
2. Да. Можно вам нужно сериализовать "все что угодно" в массив байт и передать функции обработчику указатель на начало и длину в байтах. Но при этом и передающая сторона и принимающая сторона должна знать, и он должен быть одинаков, порядок сериализации/десериализации.
0
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742
08.04.2014, 16:06  [ТС]
Цитата Сообщение от stima Посмотреть сообщение
А как Вы себе это представляете?
Массивом байт интерпретируется уже выполненная ф-я, я же имел ввиду массив int, который передастся и уже на приемнике будет обращение к i-му элементу... А представил я это себе как сколько угодно параметров типа char/int/float между сокетом и size_t
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
08.04.2014, 16:35
Все это можно например если Вы ходите передать масси интов:
C++
1
2
int array[N];
SEND(dst, array, N * sizeof(array[0])) //sizeof(array[0]) == sizeof(int)
Или массив интов и строку;
C++
1
2
3
4
5
6
7
8
9
10
11
int array[N];
char str[M];
 
char *buff = (char*)malloc(((N*sizeof(int) + strlen(str))*sizeof(char));
char *ptr = buff;
memcpy(ptr, N * sizeof(int));
ptr +=   N * sizeof(int);
memcpy(ptr, strlen(str));
 
SEND(dts, buff, N *sizeof(int) + strlen(str))
free(buff);
Только принимающая сторона должна знать что первыми идут N интов а все остальное строка!

Добавлено через 20 минут
п.с. Только не забудьте, что если Вы работаете со строкой то она, в стандарте ANSI, должна быть нультерменирована, а это + 1 байт, который можно не передавать (нет смысла), а просто нужно потом будет учесть!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.04.2014, 16:35
Помогаю со студенческими работами здесь

Ошибки Cannot send session cookie, Cannot send session cache limiter
Переустановил винду, поставил apache, старый конфиг подредактировал (поменял локальниный диск). Тут решил дописать остатки сайта,...

UdpClient и Receive
Добрый день. Для прослушивание порта сделал отдельный поток и в нём реализовал обработку сообщения. public void UDPThreadStart() ...

Receive прием пакетов
День добрый! Подскажите как получить весь ответ от запроса к сайту, с помощью Receive. Пробовал делать цикл пока Receive не вернет 0, но...

NetBIOS
Помогите, пожалуйста, служба NetBIOS не запускается, пишет ошибку не удалось запустить службу модуль поддержки Netbios через tcp/ip на...

NetBIOS
Прочитал некоторые ресурсы по разъяснению, что это и зачем это, но все равно не догнал -__- Прошу объясните "на пальцах" что...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru