Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2009, 13:42   #1
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию Посылка переменных через UDP

Добрый день . Подскажите как послать и принять сразу две переменные int через компоненты TIdUDPClient и TIdUDPServer (в C++Bulder 2009). Попробовал оправить одну через TIdUDPClient:
Код:
 int ival=3464;
udpc->SendBuffer(ToBytes(ival));
Как принять с TIdUDPServer не знаю.
RNT вне форума Ответить с цитированием
Старый 25.08.2009, 14:32   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

засунуть их в массив или структуру. Но я бы вам посоветовал использовать стандартные сокеты из библиотеки Winsock.
MaTBeu вне форума Ответить с цитированием
Старый 25.08.2009, 14:38   #3
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

А как передать массив или структуру ?
RNT вне форума Ответить с цитированием
Старый 25.08.2009, 14:55   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А как передать обычное значение? Почитайте справку блин по этой теме!
Сам метод вам подсказывает - SendBuffer, то есть он может посылать не только простые числа, а целые массивы и даже структуры.
MaTBeu вне форума Ответить с цитированием
Старый 26.08.2009, 16:50   #5
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Метод SendBuffer может посылать только массив байтов
RNT вне форума Ответить с цитированием
Старый 26.08.2009, 17:23   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

не знаю я вашего дебилдера, но обычно функция send принимает указатель на строку (буфер для отправки), размер буфера, сокет, и необязательные опции. т.е структуру можно отправить вот так:

Код:
struct {
    int a;
    char b[10];
    int c;
} m_Buff;

send((char*)&m_Buff, sizeof(m_Buff), Sock, NULL);
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 26.08.2009, 17:52   #7
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Тоесть структуру надо преобразовать в массив байтов ? Если так , то как потом массив байтов преобразовать в структуру ?
RNT вне форума Ответить с цитированием
Старый 26.08.2009, 17:59   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от RNT Посмотреть сообщение
Тоесть структуру надо преобразовать в массив байтов ? Если так , то как потом массив байтов преобразовать в структуру ?
В основе WinSock:
Код:
int send(
  SOCKET s,
  const char FAR* buf,
  int len,
  int flags
);
как видим просто адрес (buf) и размер (len) отсылаемых данных. Система не будет за вас разбивать и давать за раз, то что вы отослали. Т.е. первым делом (ну грубо говоря, не зная специфики задания ) надо слать размер вашей структуры в байтах (ну или как там прийдется), затем слать вашу структуру (т.е. указатель на нее и ее размер), клиент получает допустим 4 байта (размер получаемых данных) потом выделяет в памяти этот самый размер под структуру, и пока не будут получены все данные (размер известен) писать по смещению в ту самую структуру, как только получили, вот вам и наша структура переданная по сокету.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как можно читать бинарные данные, через UDP? b_gafurov Работа с сетью в Delphi 0 06.04.2009 15:15
Посылка XML запроса Lich Работа с сетью в Delphi 4 10.01.2009 14:32
Посылка запроса! }{oт@бь)ч Работа с сетью в Delphi 3 08.12.2008 21:16
Посылка файлов на принтер Руслан aka MiNiK Общие вопросы Delphi 3 28.10.2007 12:58