Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача структуры через сокет 
:(
    Опции темы
Agentx86
Дата 10.12.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Помогите передать и принять структуру по сети. Что надо передавать в полях данные и размер?

struct Contr {short mouse_x;            
    short mouse_y;            
    BYTE action;};         
Contr con;
send(s,(char*)&con,sizeof(Contr),0);
PM MAIL   Вверх
ptr
Дата 11.12.2006, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Цитата(Agentx86 @  10.12.2006,  23:39 Найти цитируемый пост)
Что надо передавать в полях данные и размер?

Все зависит от того как устроена программа.

Цитата(Agentx86 @  10.12.2006,  23:39 Найти цитируемый пост)
Помогите передать и принять структуру по сети.

В чём проблема то?


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
Agentx86
Дата 11.12.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Все решил сам. Всем спасибо.
PM MAIL   Вверх
ptr
Дата 11.12.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Ну тогда пометь тему как решённую.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
witex
Дата 11.12.2006, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 16.10.2006
Где: Эстония

Репутация: 1
Всего: 4



А ещё лудше покажи, как решил? мне тож интересно!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
drZmeu
Дата 4.1.2007, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: 1
Всего: 1



Да показывай. Всем интересно ;)    smile 
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
ptr
Дата 6.1.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Господа вы меня пугаете smile .


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
drZmeu
Дата 6.1.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: 1
Всего: 1



 smile
Да ладно тебе ptr просто никогда не сталкивались =)))
Мне чёт кажется вот так :
struct Contr {short mouse_x;            
    short mouse_y;            
    BYTE action;};         
Contr con;
send(s,con,sizeof(con),0);
или так:
send(s,con,strlen(con),0);
 smile 
 Ну незнаю я =))) Хотя скоро пригодится =)
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
witex
Дата 6.1.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 16.10.2006
Где: Эстония

Репутация: 1
Всего: 4



send(s,(constr char*)&con,sizeof(Contr),0); банально! я посмотрел ещё тогда в мсдн и в купил! там же чётко написанно какой тип данных передаётся! тема старая, решённая! если автор забыл поставить галочку о том что тема решена! ненадо её поднимать! 
drZmeu , не трогой темы тарые!

Это сообщение отредактировал(а) witex - 6.1.2007, 23:30
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
Sergio
Дата 29.1.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Народ помогите и мне передать структуру. Вот что я написал:

Код

struct _paket {
      char msg[50] = {"Hello world!"};
      int user = 10;
  };

_paket paket;

Потом:
Код

 send(mySocket,(char*)&paket,sizeof(paket),0); 

Какая-то ошибка smile 
И еще вопрос: как принимать структуру? Что чему присваивать?

PM MAIL ICQ   Вверх
drZmeu
  Дата 26.3.2007, 23:20 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: 1
Всего: 1



Я очень извеняюсь что поднимаю старую тему!
С отправкой структуры всё понятно!
А вот с приёмом вобшем у мну такойже вопрос как и у Serqio !
И еще вопрос: как принимать структуру? Что чему присваивать?
Код

struct Contr{
char szSendSt[1024];
BYTE szByteSt;
};

К примеру я отправил такую структуру на сервер! Как сервер должен разбирать принятые данные???

Тоесть у сервера есть похожая структура:
Код

struct Bound{
    char szRecvSt[1024];
    BYTE szByteSt;
};


Как мне присвоить текст в szRecvSt и байт в szByteSt ,,,???,,, smile 
Ещё раз извеняюсь за поднятие старой темы. написал тут чтоб не создавать новую !
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
Dray
Дата 26.3.2007, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: нет
Всего: 6



Не надо её отправлять целеком! Если в структуре есть сложные элементы, такие как строки, то отправлять её надо по частям, и принимать так же. А если у вас там указатели, сами ведь понимаете такое:
Код
send(s,con,sizeof(con),0);

НЕ ПРОКАТИТ!


--------------------
忍者

user posted image
PM MAIL   Вверх
drZmeu
  Дата 27.3.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: 1
Всего: 1



>Не надо её отправлять целеком! Если в структуре есть сложные элементы, такие как строки, то >отправлять её надо по частям, и принимать так же. А если у вас там указатели, сами ведь >понимаете такое:код C++
>1:
>        send(s,con,sizeof(con),0);
>
>
>
>
>НЕ ПРОКАТИТ!

Ну я почемуто так и думал! Неудобно =\
Вопрост тогда зачем передавать структуру полностью
аля:
Код

send(s,(constr char*)&con,sizeof(Contr),0);

Если её незя принять и разсортировать??? smile 
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
Greeen
Дата 27.3.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Цитата(drZmeu @  27.3.2007,  09:35 Найти цитируемый пост)
Если её незя принять и разсортировать???

Почему незя, можно. У тебя 1 Кб + 1 байт передаются. Вполне нормальный размер чтобы передавать его целиком. Потом получаешь (recv) и приводишь буфер к твоему типу.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ptr
Дата 28.3.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Прежде чем что-либо (структуру, класс ...) передавать по сети, нужно вначале это что-то сериализовать.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.