• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Передача По Сети

  • Автор темы Imposter
  • Дата начала
I

Imposter

вопрос в чем необходимо по сети передать текст на кирилице, но вместо текста получаю только "??????" в чем ошибка или как исправить
листенер:
C++:
 byte[] data = new byte[Received.Length * 16]; //массив байт для передачи сообщения
// c_time += (double)timer1.Interval / 1000;
server.Start();
// Byte[] bytes = new Byte[256];
TcpClient client = new TcpClient();
client = server.AcceptTcpClient();
//получение информации от клиента
NetworkStream stream = client.GetStream();
int i;
//_________________________________ПОЛУЧЕНИЕ И ОТПРАВКА ДАННЫХ______________
//принимаем данные от клиента пока не дойдем до конца.
data = new Byte[256]; // масив для хранения принятых данных
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length); // получение данных в bytes
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); // перевод в строку
// разбиение строки на массив строк

String[] Received_line = responseData.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
for (int j = 0; j < Received_line.Length; j++)
{
Received[j] = Convert.ToString(Received_line[j]);
}

клиент:

C++:
try
{
//создаем TCPClient для Listener
// настраиваем под тот же адресс и порт
TcpClient client = new TcpClient("127.0.0.1", 9595);
byte[] data = new byte[Sent_to.Length * 8]; //массив байт для передачи сообщения


//получение потока для чтения и записи
NetworkStream stream = client.GetStream();
//отправка сообщения серверу
for (int i = 0; i < Sent_to.Length; i++)
SentTo_Line = SentTo_Line + Convert.ToString(Sent_to[i]) + "_";
byte[] msg = System.Text.Encoding.ASCII.GetBytes(SentTo_Line);

stream.Write(msg, 0, msg.Length);
SentTo_Line = "";
stream.Close();
}

Передаваемый массив:
C++:
	 string[] Sent_to = {
"Hello wold1 #", 
"Привет мир",
"qweqwe",
"sdfsdfsdf",
"asdsadasd"

};
 
L

LuMee

Если планируете гонять кириллицу, то вместо ASCII нужно выбрать более подходящую кодировку. Я бы Unicode посоветовал.
 
G

Guest

Не соглашусь. Для передачи и хранения данных оптимальная кодировка UTF8.
 
  • Нравится
Реакции: sk3l
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!