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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2013, 21:31   #1
winfle
Новичок
Джуниор
 
Регистрация: 03.03.2013
Сообщений: 3
По умолчанию Бинарная сериализация

Парни помогите..уже не знаю куда смотреть..Надежда только сюда..уже запарился.Вобщем пишу сервер-клиент.Я передаю от сервера к клиенту обект типа Command , который серилизирую через бинарный формат.Потом я для проверки десерилизирую,и вывожу результат.Все ок.В консоли пишет,что все номально.Передаю длину масива байтов,который серелизировался,и сам масив.С сервером все.В клиенте я принимаю длину масива,и сам масив.Но он почему-то не десерилируется.Длина в байтах одинакова что в клиенте,что на сервере..Помогите плс
Сервер:
Код:
DirectoryInfo g=new DirectoryInfo(@"C:\");
                                BinaryFormatter bf = new BinaryFormatter();
                                NetworkStream writeStream = client.ClientSocket.GetStream();
                                Command binarycommand = new Command();
                                binarycommand.dir = g;
                                binarycommand.details = "This is binary,detka";
                                binarycommand.command = ctype.disconnect;
                                
                                byte[] binobject = SerializeHalper.BinSerialize<Command>(binarycommand);
                                long lenght = binobject.Length;
                                Console.WriteLine("File size: " + lenght.ToString() + " bytes");
                                bf.Serialize(writeStream, lenght.ToString());
                                bf.Serialize(writeStream, binobject);
                               
                                Command _ff = SerializeHalper.BinaryDeserialize<Command>(binobject);
                                Console.WriteLine(_ff.dir.FullName);
Клиент:
Код:
 int count= int.Parse(format.Deserialize(NetworkStream).ToString());
                                    Console.WriteLine("Size: " + count.ToString() + " bytes");
                                    byte[] mem = new byte[count];
                                    MemoryStream ffa=new MemoryStream(mem);
                                    BinaryWriter bwr =new BinaryWriter(ffa);

                                        byte[] zbs = (byte[])(format.Deserialize(NetworkStream));
                                        Command tt = SerializeHalper.BinaryDeserialize<Command>(zbs);
                                        bwr.Write(zbs);
                                    
                                    bwr.Close();
                                    ffa.Close();

                                   
                                  Console.WriteLine("Details"+tt.details);
                                    

 public static T BinaryDeserialize<T>(byte[] data)
        {
            var ser = new BinaryFormatter();
            using (var stream = new MemoryStream(data))
            {
                return (T)ser.Deserialize(stream);
            }
        }

 public static byte[] BinSerialize<T>(T obj)
        {
            var ser = new BinaryFormatter();
            using (var stream = new MemoryStream())
            {
                ser.Serialize(stream, obj);
                return stream.ToArray();
            }
        }

Последний раз редактировалось Stilet; 03.03.2013 в 22:13.
winfle вне форума Ответить с цитированием
Старый 04.03.2013, 06:27   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Полный проект сюда киньте (архивом в прикреплении/аттаче, в расширенном режиме написания поста), дебажить силой мысли жутко неудобно.
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарная(быстрая) сортировка Prizrak86 C# (си шарп) 3 09.02.2012 19:52
Сериализация Gregor Компоненты Delphi 10 16.04.2011 12:18
Бинарная сортировка - Pascal ctakanzor4 Помощь студентам 0 13.11.2010 02:15
Бинарная таблица Indira Общие вопросы C/C++ 0 04.11.2009 16:07