一个又棘手又怪的问题!!!
我在使用Socket传字符串信息的时候遇到了一个很棘手的问题,在这个字符串的最开头,必须是ASCⅡ码中的控制字符SOH,这个字符表示是‘标题首字符’,但是就是因为它的特殊性,导致我没有办法,将它放到字符串的最开始,换句话说,在C#里不能将它与正常的字符串进行'+'运算。比如:string a = ‘SOH’+“1234567890”;--其中的‘SOH’代表那个字符。请高人指教,最后只要能把它与正常的字符串组合成一个整体被传送就行了。
--------------------编程问答-------------------- 后面的字符串转为byte[],在前面加上SOH,传过去再转为字符串。可以吗 --------------------编程问答-------------------- --------------------编程问答-------------------- 遍历每个字符串,如果它的前三个字符是SOH,则将它替换为“”,然后进行相加。完成后在字符串头加上 "SOH" --------------------编程问答--------------------
byte[] sendBuffer = new byte[1024];
byte SOH = 0x01; //<---
sendBuffer[0] = SOH; //<---
string str = "1234567890";
Encoding.ASCII.GetBytes(str, 0, str.Length, sendBuffer, 1);
socket.Send(sendBuffer);
1、ASCii中SOH是一个控制字符,它的编码是0x01,而不是SOH三个字符。
2、Socket传输的是字节流(byte[]),要把字符串转换成字节流。
补充:.NET技术 , C#