Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
titans2011
300 / 261 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
#1

Обрыв байтов при передачи по сети - C#

24.04.2013, 22:19. Просмотров 371. Ответов 1
Метки нет (Все метки)

Всем привет. У менять код, который отсылает BitmapSource (который хранит в себе скрин экрана (около 1,5 мегабайта)) по сети.
C#
1
2
3
4
5
                        TcpClient client = new TcpClient(ipClient.Ip.ToString(), 11001);
                        NetworkStream netstream = client.GetStream();
                        netstream.Write(ws_byte[0], 0, ws_byte[0].Length); 
                        netstream.Close();
                        client.Close();
ws_byte[0] это байтовый массив, перегнанный с помощью мемстрима из BitmapSource.
Ровно перед эти куском кода, я сохраняю картинку, и все нормально, все видно, все отлично.
Как только я получаю её на клиенте:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
                TcpClient client = (TcpClient)obj;
                NetworkStream netstream = client.GetStream();
                byte[] arr = new byte[client.ReceiveBufferSize];
                int len = netstream.Read(arr, 0, client.ReceiveBufferSize);
                if (len > 0)
                {
                    BitmapSource temp = ToBitmapImage(arr);
                }
 
......
        public static BitmapSource ToBitmapImage(byte[] bytes)
        {
            using (var stream = new MemoryStream(bytes))
            {
                var decoder = BitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
                return decoder.Frames[0];
            }
        }
Я сохраняю рисунок (temp).И рисунок получается исковерканным.Вверху остается верхняя полоска, пикселей на 50, все остальное серое. Ну почему. Бьюсь уже неделю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обрыв байтов при передачи по сети (C#):

как отловить обрыв сети (SocketException) - C#
Добрый день! Столкнулся с такой, вроде бы тривиальной задачей - необходимо написать приложение обменивающееся сообщениями по сети. И все...

Преобразование двумерного массива в массив байтов для передачи через сеть - C#
Доброго времени суток. Собственно возник вопрос, а возможно ли преобразовать двумерный массив (ну или хоть какой нибудь массив) в байты,...

Замер времени передачи пакета по сети - C#
Добрый вечер. Подскажите, пожалуйста,как можно измерить время выполнения запроса.С помощью сокетов передаётся сообщение серверу.С сервера...

Приложение для передачи файлов по сети - C#
Доброго времени суток всем!!! Я тут новенький да и в программировании тоже. Меня собственно говоря интересует, как написать приложение...

Сериализация объекта для передачи по сети - C#
Здравствуйте многоуважаемые форумчане. Взываю к вам, ибо ответа найти я не могу =( В шарпы пришел из С, и сейчас надо переделать...

.NET 4.x Сканирование байтов в памяти, и получение начального адреса байтов - C#
Привет форумчане! У меня вопрос, как просканировать память у процесса так, чтобы получить адрес начала байтов в памяти? Я попробовал...

1
Wolfdp
505 / 494 / 61
Регистрация: 15.06.2012
Сообщений: 1,957
Записей в блоге: 1
25.04.2013, 00:44 #2
client.ReceiveBufferSize - это внутренний буфер класса для чтения и он далеко не 1,5Мб. Вам нужно или указывать длину сообщения в начале отправки, или шаманить некую метку конца.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 00:44
Привет! Вот еще темы с ответами:

Ишу рабочий пример клиент-серверного приложения для передачи файлов по сети - C#
Сабж. Если у кого-то имеется подобное или кто-нибудь где-нибудь видел, поделитесь) Сколько я уже примеров видел, и сам писал, и не раз...

Добавление байтов при создании сокета - C#
Читаю книгу dotNET Сетевое программирование для профессионалов,но то,что мне нужно я не нашел(нашел почти все,что нужно но некоторых вещей...

Ошибка при чтении байтов из файла - C#
Добрый день! Подскажите пожалуйста, что я делаю не так. Редактор выдаёт ошибку: "Невозможно использовать локальную переменную "File" до ее...

Захват и передача видео по сети ?(Видео есть , нету передачи) - C#
Нужно реализовать захват видео с веб камеры и передача его по сети. (НАпример телемост). 1) Захват видео с веб камеры есть 2) НЕ могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru