TcpListener, отправка массива байт: ошибка преобразования типов - C#
Формулировка задачи:
Требуется массив отправить на сервер, преобразую массив в массив байт, но при отправке выдает ошибку.
Ошибка: "не может преобразовать ' Byte [] []' выражение типа ` байт [] '"
Ошибка в строке 10
Как можно решить проблему ?
//Преобразуем массив в массив байт byte[][] data = new byte[message.Length][]; for (int i = 0; i < message.Length; i++) { data[i] = GetBytes(message[i]); } // Получаем поток для чтения и записи данных. NetworkStream stream = client.GetStream(); // Отправляем сообщение нашему серверу. stream.Write(data, 0, data.Length);
Решение задачи: «TcpListener, отправка массива байт: ошибка преобразования типов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Net.Sockets; using System.Text; using System.Threading; namespace ConsoleApplication158 { class Program { static void Main(string[] args) { new Thread(ServerLoop) { IsBackground = true }.Start(); new Thread(ClientLoop) { IsBackground = true }.Start(); Console.ReadLine(); } static void ServerLoop() { var list = new TcpListener(24432); list.Start(); using (var tcp = list.AcceptTcpClient()) using (var stream = tcp.GetStream()) { //принимаем длину сообщения var buffer = new byte[4]; stream.Read(buffer, 0, 4); //принимаем сообщение var length = BitConverter.ToInt32(buffer, 0); var bytes = new List<byte>(); while (bytes.Count < length) bytes.Add((byte)stream.ReadByte()); //преобразуем в строку, сплитуем по разделителю var str = Encoding.Default.GetString(bytes.ToArray()); var array = str.Split('\x0'); foreach (var s in array) Console.WriteLine(s); } } static void ClientLoop() { var array = new string[] { "авава", "fdfds", "ававы" }; var bytes = new List<byte>(); foreach(var item in array) bytes.AddRange(Encoding.Default.GetBytes(item + "\x0")); using (var tcp = new TcpClient("localhost", 24432)) using ( var stream = tcp.GetStream()) { //отправляем длину сообщения stream.Write(BitConverter.GetBytes(bytes.Count), 0, 4); //отправляем сообщение stream.Write(bytes.ToArray(), 0, bytes.Count); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д