У меня есть эмулятор устройства, который принимает данные в виде текста из сокета. Ниже код работает нормально, пока я не отправлю с 0x00 to 0x7F
, что означает ограничение по Ascii (от 0 до 127).Проблема возникает, когда я пытаюсь отправить за пределы Ascii, например, 0x80,0x81.Он отправляет эмулятору 0x3F ('?') И меняет весь смысл команды.потому что он не может этого понять.
Итак, что может быть возможным решением для отправки данных за пределы Ascii
Код отправки данных:
//string data = textBox1.Text;
string d1 = ConvertHex("35"); //getting exact byte in socket
byte[] buffer = Encoding.ASCII.GetBytes(d1);
clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
Функция ConverHex:
public static string ConvertHex(String hexString)
{
try
{
string ascii = string.Empty;
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = string.Empty;
hs = hexString.Substring(i, 2);
uint decval = System.Convert.ToUInt32(hs, 16);
char character = System.Convert.ToChar(decval);
ascii += character;
}
return ascii;
}
catch (Exception ex) { Console.WriteLine(ex.Message); }
return string.Empty;
}