Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742

NetBIOS ф-ии Send и Receive

05.04.2014, 23:34. Показов 3474. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru