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
ですか?