t.sendData("010300000001840A");你发送的是字符串,可不是 16进制数字
同时,程序可以发送,对方能够接受到这个字符串

解决方案 »

  1.   

    字符串转16进制错误
    01
    03
    分别是一个字节
    不能把string转char数组,然后再转
    那样变成0,1,0,3分别当做字节在发送
      

  2.   

    t.sendData("010300000001840A");
    老老实实定义个byte数组,把内容填进去,不要自己胡转乱转
      

  3.   


    你好,调用void sendData(string data)方法时, 内部转换为byte数组了.
      

  4.   

    你好,调用void sendData(string data)方法时, 内部转换为byte数组了. 
      

  5.   

    你好,调用void sendData(string data)方法时, 内部转换为byte数组了. 
    看2楼,你转错了.
    foreach里,你把每一个字符都转byte,于是你发送的是00,01,00,03....
    你应该每2个字符转byte
      

  6.   

    二楼的意思是:
    byte[] bdata = new byte[8];
    bdata[0] = 0x01;
    bdata[1] = 0x03;
    bdata[2] = 0x00;
    bdata[3] = 0x00;
    bdata[4] = 0x00;
    bdata[5] = 0x01;
    bdata[6] = 0x84;
    bdata[7] = 0x0A;
    comm.Write(bdata.ToArray(), 0, bdata.Count);
      

  7.   

    你这中t.sendData("010300000001840A");发送的数据是:
    bdata[0] = 0x30;
    bdata[1] = 0x31;
    bdata[2] = 0x30;
    bdata[3] = 0x33;
    bdata[4] = 0x30;
    bdata[5] = 0x30;
    .
    .
    .
    bdata[14] = 0x30;
    bdata[15] = 0x41;你这是发送了16个长度,而不是8个长度。
      

  8.   

    你好,调用void sendData(string data)方法时, 内部转换为byte数组了. 
    看2楼,你转错了.
    foreach里,你把每一个字符都转byte,于是你发送的是00,01,00,03....
    你应该每2个字符转byte
    感谢大神, 可以获取到响应了.非常感谢.