Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 80

Передать массив byte по TCP

18.10.2012, 19:22. Показов 6506. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется массив "byte[] b = ms.ToArray();" в котором содержится файл. Как передать этот массив по TCP?
Пробовал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MemoryStream ms = new MemoryStream();
            IMG.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] b = ms.ToArray();
 
            MemoryStream stream = new MemoryStream(b);
 
            TcpClient TCP_client = new TcpClient("127.0.0.1", 3131);
            NetworkStream TCP_network_stream = TCP_client.GetStream();
            BinaryFormatter TCP_binary_formatter = new BinaryFormatter();
            byte[] buf = new byte[1024];
            int count;
            long k;
            BinaryReader TCP_binary_reader = new BinaryReader(stream);
            k = stream.Length; //Размер файла. 
            TCP_binary_formatter.Serialize(TCP_network_stream, k.ToString());
            while ((count = TCP_binary_reader.Read(buf, 0, 1024)) > 0)
            {
                TCP_binary_formatter.Serialize(TCP_network_stream, buf); 
            }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2012, 19:22
Ответы с готовыми решениями:

Добавление элементов из массива byte[] в массив byte[]
Подскажите, пожалуйста, как можно добавить элементы из массива byteb в массив byte a, что бы элементы дописались в конец массива ...

Нельзя преобразовать тип function(a: byte;b: byte): byte к integer (Списки)
Создать список из целых чисел.Поменять в списке местами максимальный и минимальный элементы Проблемы c процедурами Pos и Chang: пос...

Как передать hex to byte
Здравствуйте, есть udp элемент и он передает на определенный IP hex код вот так: LRequest :=...

4
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
18.10.2012, 19:48
C#
1
2
3
4
5
6
7
8
9
10
11
ASCIIEncoding asen = new ASCIIEncoding();
public void SendData(String SString)
        {
                        TcpClient tcpclnt = new TcpClient();
                        tcpclnt.Connect("goal.zapto.org", 1000);//1000-порт, если используеш роутер, то порт лучше открыть) на роутере
                        Stream stm = tcpclnt.GetStream();//get stream
                        byte[] ba = asen.GetBytes(SString);//string to byte
                        stm.Write(ba, 0, ba.Length);//send
 
                        tcpclnt.Close();//close
                    }
0
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 80
18.10.2012, 19:58  [ТС]
А как его получить на сервере в виде массива byte?
0
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
18.10.2012, 20:08
организовать поток и начинать слушать.
Вот простой пример
C#
1
2
3
4
5
6
7
8
9
10
                   String bufStr = "";
                    IPAddress ipAd = IPAddress.Any;
                    TcpListener myList = new TcpListener(ipAd, 1000);// слушаем любой ип, 1000 порт
                    myList.Start();// начнем прослушивать
 
                    Socket s = myList.AcceptSocket();//принимаем
                    byte[] b = new byte[10000];
                    int k = s.Receive(b);//получили размер массива
                    for (int j = 0; j < k; j++)//получили строчку
                        bufStr += Convert.ToChar(b[j]);
Повторюсь, если интернет подключение через роутер, открой порт иначе не будет передачи данных
1
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 80
18.10.2012, 20:23  [ТС]
Теперь ошибка при попытке загрузить массив byte в MemoryStream: входная строка имела не верный формат.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
String bufStr = "";
            IPAddress ipAd = IPAddress.Any;
            System.Net.IPAddress ipAddress = System.Net.IPAddress.Parse("127.0.0.1");
            TcpListener myList = new TcpListener(ipAddress, 5858);// слушаем любой ип, 1000 порт
            myList.Start();// начнем прослушивать
 
            Socket s = myList.AcceptSocket();//принимаем
            byte[] b = new byte[10000];//получили массив битов
            int k = s.Receive(b);//получили размер массива
            for (int j = 0; j < k; j++)
            {
                bufStr += Convert.ToChar(b[j]);
            }
 
            MemoryStream MS = new MemoryStream(Convert.ToByte(bufStr.ToString()));
 
            BitmapImage Art3 = new BitmapImage();
            Art3.BeginInit();
            Art3.StreamSource = MS;
            Art3.EndInit();
 
            IM.Source = Art3;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2012, 20:23
Помогаю со студенческими работами здесь

Как из потока передать в переменную типа Byte?
Вопрос такой: как можно из потока TStream данные занести в двумерный массив типа Array of Byte по 100000 байт? К примеру, получаю...

Как передать byte[] в WebView для отображения PDF ?
Имеется pdf-файл в виде массива байт, каким образом можно передать этот массив в WebView, чтобы показать этот pdf на экране?

Как передать массив из базы данных (передать массив из php в javascript методом ajax)
&lt;?php //php страница qwe.php для обработки ajax запроса require_once &quot;blocks/head.php&quot;; ...

Передать по TCP
Я хочу передать с клиента TCP андроид на Qt TCP сервер изображение, байты звука, размеры и хочу это все передать в JSON. Но если у меня и...

Передать int по TCP
Я хочу передать через сокеты TCP размер изображения а затем само изображение. Как правильно передать размер ведь передача идет в байтах,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru