我正在使用 TcpClient 作为字节数组从 Telnet 服务器读取数据并使用 ASCII 编码器转换为字符串,即:
int size;
byte[] buf;
tcpclient.Read(buf,0,MAX_BUFFER_SIZE);
string resp = new System.Text.ASCIIEncoding().GetString(fullBuffer, 0, fullBuffer.Length);
并具有buf
读取的字节。我想在 中提取(并稍后回答)IAC 命令buf
,而不是在resp
. 你有一个有效的建议方法。
我首先想到的是:在resp
(a) 中查找 "\0xFF" 字符串,如果后面跟着 "\0xFF",将 "\0xFF\0xFF" 替换为 "\0xFF" (b) 如果不提取后面的字节作为 IAC 并回答. resp.Remove()
两个字符。
这是一个有效的解决方案吗?您是否建议在byte[]
级别解决它(有没有办法让byte[]
ASCII 编码器忽略其中的一些值?)或编码后string
?