Я пишу клиент-серверное приложение. У меня есть некоторые структуры данных, которые я хочу отправить через сеть от клиента к серверу. Я представляю их как массив байтов определенного размера. Сервер и клиент знают об этой структуре.Каков наилучший способ передачи данных по сети с подтверждением. .Net
Моя цель состоит в том, чтобы послать группы структур и ждать подтверждения от сервера, на котором они были получены и правильно сохраненному на его стороне ..
Моя идея состояла в том, чтобы создать простой код.
стороне клиента:
- подключиться к серверу;
- подготовить список структур;
- в цикле отправлять их в виде массивов байтов в сеть с использованием метода Stream.Write (...). Затем Flush();
- ждать ответа сервера о том, сколько данных он мог бы сохранить.
- повторите все с шага 2.
стороне сервера:
- принять соединение клиента;
- получать данные до конца (Stream.Read() не хочет определять, что конец данных может быть из-за того, что соединение все еще живое);
- сохранить все данные на диск;
- отправьте ответ о количестве сохраненных данных клиенту с использованием того же клиентского соединения, которое использовалось для получения данных от клиента.
Проблема была в том, что на стороне сервера я не мог определить конец группы данных, отправленной клиентом.
как сделать все, что я хочу сорвать?
Вы посмотрели на программирование на C#. Какие типы данных вы пытаетесь передать по сети. это будет TCP/IP, именованные каналы, сокеты, потоки/многопотоковые ..etc .. Хороший вопрос, который у вас есть, но вы не указали тип данных, которые должны быть переданы .. спасибо – MethodMan
Мои исходные данные - это куча структур. Перед отправкой я конвертирую их в байтовые массивы и переношу их с помощью класса NetworkStream. – yurart
Кразе уже задал некоторые интересные факты о данных. Кроме того, вы должны указать, является ли производительность проблемой. Похоже, что простая WCF-служба будет достаточной для того, что вы пытаетесь выполнить. –