Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
c# console
#1
Такой вопрос
В пакете идет логин и пароль через запятую : Kirito , 135635
Но длина нигде не записывается, как можно сделать так чтобы логин и пароль можно было сравнить например с бд?
Если отсчитать количество байт до логина то можно узнать где он начинается, но вот длина то у всех разная
[Изображение: _DDxWWDPba8.jpg]
Ответ
#2
Разбирайте пакет по байтам. Циклом идете по содержимому до запятой, все что перед ней - в одну переменную, все, что после - в другую. Потом их сравниваете с эталонным значением.
Ответ
#3
Zeratyl Написал:Разбирайте пакет по байтам. Циклом идете по содержимому до запятой, все что перед ней - в одну переменную, все, что после - в другую. Потом их сравниваете с эталонным значением.

а можно примерно кодом?
Ответ
#4
Прочитать статичное количество байт, например 100, обрезать всё, что после нуль-терминированной строки, разбить на две части.

[SRC="csharp"]var credentials = ReadString(100)
.Trim('\0') // Или реализовать свой метод ReadNullTerminatedString
.Split(',');

Log.Information("{@credentials}", credentials);
[/SRC]


[Изображение: SNIMOK.png]
Ответ
#5
PROGRAMMATOR Написал:Прочитать статичное количество байт, например 100, обрезать всё, что после нуль-терминированной строки, разбить на две части.

[SRC="csharp"]var credentials = ReadString(100)
.Trim('\0') // Или реализовать свой метод ReadNullTerminatedString
.Split(',');

Log.Information("{@credentials}", credentials);
[/SRC]


[Изображение: SNIMOK.png]

пробую вот так сделать
[SRC="csharp"]
string[] arrstring = data.Trim('\0').Split(',');
string strings = arrstring[0];
String strings2 = arrstring[1];
Console.WriteLine("Test:{0} : {1}", strings, strings2);
[/SRC]
Пароль идеально выдает, а вот с логином проблема
Вместо Kirito пишет ito
Где я ошибся?
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)