//追加的形式添加到文本框末端,并滚动到最后。
Console.WriteLine(builder.ToString());
//修改接收计数
Console.WriteLine("Get:" + received_count.ToString());
}
void sendData(string data)
{
//定义一个变量,记录发送了几个字节
int n = 0;
List<byte> buf = new List<byte>();//填充到这个临时列表中
foreach (byte item in data)
{
buf.Add(item);
}
//转换列表为数组后发送
comm.Write(buf.ToArray(), 0, buf.Count);
//记录发送的字节数
n = buf.Count;
send_count += n;//累加发送字节数
}
void close()
{
comm.Close();
}
static void Main(string[] args)
{
Test2 t = new Test2();
try
{
while (true)
{
Thread.Sleep(3000);
Console.WriteLine("发送数据");
t.sendData("010300000001840A");
}
}
finally
{
t.close();
}
}
}
}
字符串转16进制错误
01
03
分别是一个字节
不能把string转char数组,然后再转
那样变成0,1,0,3分别当做字节在发送
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);
foreach里,你把每一个字符都转byte,于是你发送的是00,01,00,03....
你应该每2个字符转byte