网络传输自定义协议中0xFF 等被变成char型 然后就变成另外一个数值了,怎么办?内附代码
IPEndPoint newclient = (IPEndPoint)this.tempSocket.RemoteEndPoint;
NetworkStream ns = new NetworkStream(tempSocket);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
char[] myReadBuffer = new char[1024];
int count;
while (true)
{
try
{
count = sr.Read(myReadBuffer, 0, myReadBuffer.Length);//读取数据,这个地方myReadBuffer[0]就不是0xFF
if (count > 0)
{
Byte[] bTemp = Encoding.Default.GetBytes(myReadBuffer);
if (bTemp[0]== 0xFF) //这个地方bTemp[0]变成0x3F,实际上我传过来的是0xFF
{
sw.Write(myReadBuffer, 0, count);//将原数据发回客户端
sw.Flush();
}
}
}
catch
{
break;
}
}
sw.Close();
sr.Close();
ns.Close();
}
我网络传过来的是16进制 FF FF FF FF 00 02 00 00 06 6B CD D5 66 2E 27 但是 前面4个FF 和中间CD D5 都变了。
请大神帮忙。