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

Поиск:

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


Новичок



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

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



пытась передать структуру по сети... показалось что оптимальный вариант Маршалинг... только вот беда.. маршалинг не совсем удобен с референс обжектами
в любом случае для теста написал такую структуру...
Код

using System.Runtime.InteropServices;
using System;
[Serializable]
[StructLayout(LayoutKind.Sequential)] 
public struct TestStruct{
    [MarshalAs(UnmanagedType.LPStr, SizeConst = 256)]  string str1;
    [MarshalAs(UnmanagedType.LPStr, SizeConst = 256)]  string str2;


    public string Str1
    {
        get { return str1; }
        set { str1= value; }
    }
    
    public string Str2
    {
        get { return str2; }
        set { str2= value; }
    }

}


на виходе ... при попытке демаршалинга получил 
The specified structure must be blittable or have layout information.
Parameter name: structure

ну ексепшн ясен... может кто тыкнет в что-не-так?

Код


 public static T ByteBufferToObject<T>(byte[] data)
        {
            IntPtr ip = Marshal.AllocHGlobal(data.Length);
            Marshal.Copy(data, 0, ip, data.Length);
            T o = (T)Marshal.PtrToStructure(ip, typeof(T));
            Marshal.FreeHGlobal(ip);
            return o;
        }     


Это сообщение отредактировал(а) ПашкаКорчагин - 27.1.2008, 20:58
PM MAIL   Вверх
mr.DUDA
Дата 28.1.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



[StructLayout] мешает, имхо.


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 30.1.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



ПашкаКорчагин, если перформанс не критичен, что мешает воспользоваться стандартной сериализацией для упаковки структуры в байтовый массив и отправки его через сеть?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




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


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

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