Как преобразовать ответ byte[] в список, Словарь или объект?
Я получаю ответ для мастеров командного дозора против сервера redis.
public string GetMasterFromSentinel(string sentinelAddress) { TcpClient server; try { var splittedAddress = sentinelAddress.Split(':'); server = new TcpClient(splittedAddress[0], int.Parse(splittedAddress[1])); } catch (SocketException) { // _log.Error("Unable to connect to server"); return string.Empty; } NetworkStream ns = server.GetStream(); var payload = new byte[] { 0x2a, 0x32, 0x0d, 0x0a, 0x24, 0x38, 0x0d, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x0d, 0x0a, 0x24, 0x37, 0x0d, 0x0a, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x0d, 0x0a }; ns.Write(payload, 0, payload.Length); ns.Flush(); var data = new byte[1024]; ns.Read(data, 0, data.Length); ns.Close(); server.Close(); string output = string.Empty; foreach (byte b in data) output += (Char)b; //i have put remove nulls from the string output = output.Replace("\r\n", string.Empty).Replace("$","|"); return output; }
Значение вывода до удаления нулей: "* 1 \ r \ n * 40 \ r \ n $ 4 \ r \ nname \ r \ n $ 8 \ r \ nmymaster \ r \ n $ 2 \ r \ nip \ r \ n $ 12 \ r \ n10.93.247.96 \ r \ n $ 4 \ r \ nport \ r \ n $ 4 \ r \ n6379 \ r \ n $ 5 \ r \ nrunid \ r \ n $ 40 \ r \ n03ba9934d84efe28e583f4dca03f5b6c710bd712 \ r \ n $ 5 \ r \ nflags \ r \ n $ 6 \ r \ nmaster \ r \ n $ 21 \ r \ nкоманды ожидания ссылки \ r \ n $ 1 \ r \ n0 \ r \ n $ 13 \ r \ nссчет ссылок \ r \ n $ 1 \ r \ n1 \ r \ n $ 14 \ r \ nпоследний-отправленный \ r \ n $ 1 \ r \ n0 \ r \ n $ 18 \ r \ nпоследний-ок-пинг-ответ \ r \ n $ 3 \ r \ n134 \ r \ n $ 15 \ r \ nпоследний-ответ-пинг \ r \ n $ 3 \ r \ n134 \ r \ n $ 23 \ r \ ndown-after-milliseconds \ r \ n $ 5 \ r \ n10000 \ r \ n $ 12 \ r \ ninfo-refresh \ r \ n $ 4 \ r \ n6802 \ r \ n $ 13 \ r \ nРоль-отчет \ r \ n $ 6 \ r \ nmaster \ r \ n $ 18 \ r \ n-время-отчет \ r \ n $ 8 \ r \ n76627249 \ r \ n $ 12 \ r \ nconfig-epoch \ r \ n $ 1 \ r \ n6 \ r \ n $ 10 \ r \ nnum-slaves \ r \ n $ 1 \ r \ n1 \ r \ n $ 19 \ r \ nnum-other-sentinels \ r \ n $ 1 \ r \ n1 \ r \ n $ 6 \ r \ nquorum \ r \ n $ 1 \ r \ n2 \ r \ n $ 16 \ r \ n Тайм-аут аварийного переключения \ r \ n $ 6 \ r \ n180000 \ r \ n $ 14 \ r \ nпараллельная синхронизация \ r \ n $ 1 \ r \ n1 \ r \ n \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 "
Значение вывода после удаления нулей:
"* 1 * 40 $ 4name $ 8mymaster $ 2ip $ 1210.73.247.36 $ 4port $ 46379 $ 5runid $ 4003ba9934d84efe28e583f4dca03f5b6c710bd712 $ 5flags $ 6master $ 21link-pending-commands $ 10 $ 13link-refcount-$ 11 $ $ 10 $ 13link-refcount-$ 11 $ -reply $ 3958 $ 15last-ping-reply $ 3958 $ 23down-after-milliseconds $ 510000 $ 12info-refresh $ 48689 $ 13 роль-сообщила $ 6master $ 18 роль-сообщение-время $ 876879953 $ 12config-epoch $ 16 $ 10num-slaves $ 11 $ 19num-other- часовые $ 11 $ 6quorum $ 12 $ 16 таймаут отработки отказа $ 6180000 $ 14 параллельная синхронизация $ 11 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 "
Мне нужно преобразовать соответствующий ключ и значения в словарь или объект.
Что я уже пробовал:
Я попытался удалить нули из вывода.
Есть ли правильный способ фильтровать/анализировать информацию, отправленную сервером redis?
Фактический ответ от Redis будет таким:
1) 1) " имя"
2) "спасение"
3) " ip"
4) "127.0.0.1"
5) " порт"
6) "7789"
...
Richard MacCutchan
"Есть ли правильный способ фильтровать / анализировать информацию"
Да, проверьте документацию, чтобы узнать точную структуру возвращаемой информации.
Member 1097736
Я обновил его. Можете проверить?
Richard MacCutchan
Нет, потому что у меня нет документов.