【问题标题】:c# send hex via tcpc# 通过 tcp 发送十六进制
【发布时间】:2018-12-17 10:43:43
【问题描述】:

我正在尝试通过 TCP 发送十六进制数据。

我知道如何在 UDP 中做到这一点,但 TCP 对我不起作用:

TcpClient client = new TcpClient("192.168.1.202", 8000);
NetworkStream stream = client.GetStream();

ASCIIEncoding Enc = new ASCIIEncoding();
Byte[] s = new byte[] { 0xa5, 0x5b, 0x02, 0x03, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07 };
Console.WriteLine(s.ToString());

【问题讨论】:

  • 你是对的,我粘贴了错误的代码。我已经编辑并且 tis 是非工作代码。错误是它发送的命令格式错误。
  • 我没有看到发送命令。您尝试将字节数组发送到哪里?你能发个Minimal, Complete, and Verifiable example
  • 我不知道如何添加发送命令,我正在寻找几个小时的示例,这就是我在这里的原因
  • Console.WriteLine("0x" + s.ToString("x2"));
  • 如果你需要发送一个代表十六进制值的字符串,你可以尝试这样的事情:string.Join(" ", s.Select(bTs => bTs.ToString("X2")));。但是,你确定你需要一个字符串而不是一个字节数组吗?

标签: c# tcp hex


【解决方案1】:

我已经这样解决了:

TcpClient client = new TcpClient("192.168.1.202", 8000);

        Byte[] s = new byte[] { 0xa5, 0x5b, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x00, 
        0x00, 0x00, 0x00, 0xf9 };
        NetworkStream stream = client.GetStream();
        stream.Write(s, 0, s.Length);

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 2014-05-15
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多