Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Блокировать процессы В касперском есть возможность блокировать процессы: -Запрещать доступ к другим процессам. -Делать изменения в операционной системе. Получается в итоге блокируемый процесс запущен, но он тупо "висит" и ничего не может сделать. Хотелось бы вынести данный функционал в отдельную утилиту, не поможете разобраться.. Я так понимаю, там вешаются хуки на процессы? Можно ли подобное реализовать на... https://www.cyberforum.ru/ csharp-net/ thread1805708.html C# Get hdc from window hwnd
Проблема такая, нашел в инете такую же, скопирую текст, т.к. задача – идентичная ************************ I'm developing an application that interacts with a third-party application ( "OtherApp"). "OtherApp" has a lot of windows, each window has the same behavior, but different data. My application can interact with "OtherApp" application windows. I want to change the text of the control...
C# Загрузка оптимальной текстуры Всем привет. Разрабатывая игру на mono, пришел к тому что надо рисовать много спрайтов. В моно отрисовка спрайта похожа на void Draw { foreach (var Object in drawObjet) { if (t != Object.texture) https://www.cyberforum.ru/ csharp-net/ thread1805674.html C# Проверка логина регулярным выражением В задаче нужно проверить логин на соответствие требованиям с использованием регулярного выражения Логин должен быть одним словом Логин должен состоять из 2-10 символов Не может начинаться с цифры Я после долгих мучений написал Regex myReg = new Regex(@"^\D\w{2,10}$") в результате выражение пропускает к примеру такой пароль %pass https://www.cyberforum.ru/ csharp-net/ thread1805370.html
C# Чтение буфера клавиатуры
Как на c# вывести содержимое буфера клавиатуры(как в unsafe прочитать содержимое по адресу в памяти) Можно использовать чтение буфера клавиатуры по адресам 0040:001Ah указатель на логическое начало буфера 0040:001Ch указатель на логический конец буфера 0040:001Eh память для хранения ASCII/скан-кодов начало 0040:003Eh конец буфера 0040:0080h указатель на физическое начало буфера...
C# Как реализовать прием ответов от сервера POP3? Как реализовать прием ответов от сервера POP3? https://www.cyberforum.ru/ csharp-net/ thread1805228.html
C# Task.Wait async Метод https://www.cyberforum.ru/ csharp-net/ thread1805027.html
Всем привет. Нужна помощь. Я в сеттере (нужно именно тут) создаю таск Task task = new Task(Load); Сам лоад асинхронный: private async void Load() Соответственно внутри есть await. В сеттере выполняю: task.Start(); task.Wait();
Объявление DllImport функций с указателями и ссылками C#
Есть статическая библиотека С++. Нужно импортировать в С# ее метод если функция с простой сигнатурой - примерно так получается public static extern MyFunc(int a); Как сделать тоже для функции вида static App* Create(const AppOptions& options, JNIEnv* jni_env,
C# Приложение для связи сайта с SQL-сервером https://www.cyberforum.ru/ csharp-net/ thread1804909.html
Добрый день! Такая проблемка: стоит задача создать приложение, которое будет помещаться на сервер и служить посредником между сайтом и SQL-сервером. Выглядеть это должно так: php-страница сайта обращается к программе отдавая данные, в соответствии с которыми необходимо найти другие данные на SQL-сервере и вернуть их в ту же самую php-страницу. Данные, вроде как, должны передаваться с помощью...
C# "Отказано в доступе" при попытке получить температуру процессора через WMI Здравствуйте. Пытаюсь получить температуру процессора, а мне выбивает исключение. ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature"); foreach (ManagementObject obj in searcher.Get()) { Double temp = Convert.ToDouble(obj.ToString()); temp = (temp... https://www.cyberforum.ru/ csharp-net/ thread1804800.html
Ошибка при десериализации объекта C#
Есть вот такой простой код public struct ColorStatType { public Color color; } ... FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
C# Передача сообщений между потоками Привет! Есть у меня простой класс-логгер: static class Logger { public delegate void Message(string msg); static public event Message OnMessage; static public void SendMessage(string msg) https://www.cyberforum.ru/ csharp-net/ thread1804650.html
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 3
0

Как передать сериализованный объект по сети? - C# - Ответ 9531433

11.09.2016, 12:07. Показов 1716. Ответов 5
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста. Есть Сервер (С) на с# и клиент (К) на юнити. Устанавливаем между ними сокетное подключение и пытаемся передать сериализованный класс, причем класс который передаем обсолютно идентичен по исходному коду и на клиенте и на сервере. Но в результате получаем ошибку при десирализации класса в ExEnterWorld 25 строка:
System.IO.FileNotFoundException: Could not load file or assembly 'ServerNew, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'ServerNew, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'


Замечу что раньше мы собирали классы которые передавли в отдельную dll и подключали ее в клиенте и сервере, тогда все работало нормально, но это очень не удобно по этому ищем упрощенный вариант.

Подскажите пожалуйста в какую сторону копать? Я так понимаю что ошибка из-за того что клиент пытается десириализовать именно в экземпляр класса сервера, как это можно обойти?

Вот так выглядит пакет с сериализацией и десирализацией
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 public class ExEnterWorld: Packet
    {
        public FullPlayerInfoContract CurrPlayer;
        public byte[] ObjData;
        public int ObjDataLenght;
        private string test;
 
        public ExEnterWorld() : base(PacketType.ExEnterWorld) { }
 
        public ExEnterWorld(FullPlayerInfoContract currPlayer)
            : this()
        {
            CurrPlayer = currPlayer;
        }
 
        public override void ReadPacket(PacketReader pr, IPacketHandler handeler)
        {
            pr.BaseStream.Seek(2, SeekOrigin.Begin);
            Length = pr.ReadInt16();
            ObjDataLenght = pr.ReadInt32();
            ObjData = pr.ReadBytes(ObjDataLenght);
            Checksumm = pr.ReadInt16();
            BinaryFormatter binFormatter = new BinaryFormatter();
            MemoryStream mStream = new MemoryStream(ObjData);
            CurrPlayer = (FullPlayerInfoContract)binFormatter.Deserialize(mStream);
        }
 
        public override void WritePacket(PacketWriter pw)
        {
            var binFormatter = new BinaryFormatter();
            var mStream = new MemoryStream();
            binFormatter.Serialize(mStream, CurrPlayer);
            ObjData = mStream.ToArray();
            ObjDataLenght = ObjData.Length;
 
            pw.Write((ushort)Type);
            pw.Seek(2, System.IO.SeekOrigin.Current);
 
            pw.Write(ObjDataLenght);
            pw.Write(ObjData);
 
            short length = (short)(pw.BaseStream.Length + 2);
            pw.Write(length);
 
            pw.Seek(2, System.IO.SeekOrigin.Begin);
            pw.Write(length);
        }
 
        public override string ToString()
        {
            return String.Format("EnterPlayer: CurPlayer[Name: {0}, X: {1}, Y: {2}]", CurrPlayer.Name, CurrPlayer.X,
                CurrPlayer.Y);
        }
 
    }
Вот так сам сериализуемый класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
namespace ServerNew.Network.NetworkPackets.Contracts
{
    [Serializable()]
    public class FullPlayerInfoContract
    {
        public int Id { get; set; }
 
        public string Name { get; set; }
        public int MaxHp { get; set; }
        public int MaxMana { get; set; }
        public int Speed { get; set; }
 
        public double X { get; set; }
        public double Y { get; set; }
 
        public bool InWarMode { get; set; }
 
        public bool IsDead { get; set; }
 
        public bool Npc = false;
 
        public FullPlayerInfoContract(int id, double x, double y, string name, int maxHp, int maxMana, int speed, bool warMode, bool isDead, bool npc)
        {
            this.Id = id;
            this.X = x;
            this.Y = y;
            this.Name = "asd";
            this.MaxHp = maxHp;
            this.MaxMana = maxMana;
            this.Speed = speed;
            this.InWarMode = warMode;
            IsDead = isDead;
            this.Npc = npc;
        }
 
        public override bool Equals(object obj)
        {
            var contact2 = obj as FullPlayerInfoContract;
            if (contact2 == null) return false;
            return this.Id == contact2.Id && this.MaxHp == contact2.MaxHp &&
                this.MaxMana == contact2.MaxMana && this.Speed == contact2.Speed &&
                this.X == contact2.X && this.Y == contact2.Y && String.Equals(this.Name, contact2.Name);
        }
    }
}


Вернуться к обсуждению:
Как передать сериализованный объект по сети? C#
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2016, 12:07
Готовые ответы и решения:

Как передать значение в сериализованный Dictionary
В общем есть класс для сериализации (нашел в просторах инета) И есть элемент Dictionary<string,...

Не могу передать сериализованный массив
в предыдущей теме я не выложил весь код программы..программа состоит из сервера и клиента..сервер...

Процедуры в c# - как передать объект
Добрый день. При вызове процедуры Connect происходит ошибка "невозможно преобразование void в...

Как передать объект от сервера к клиенту?
Только-только знакомплюсь с клиент-серверным программированием. Хочу передать объект, например...

5
11.09.2016, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2016, 12:07
Помогаю со студенческими работами здесь

Передать объект класса как аргумент метода в поток
Имеется класс npimono, код использования: private void loadListButton_Click(object sender,...

Как выглядит сериализованный файл
В общем суть такая - я всегда пользовался своим форматером, который скажем сериализует и...

Как передать потоковое видео по сети
Ребят, вот подумал над проектом и решил написать программу для удаленного управления. Но проблема в...

Как передать объект Excel.Application клиенту?
Пример работы с Excel.Application: Set Obj=CreateObject('Excel.Application') ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru