首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在TcpClient.Read()中处理IAC字节

在TcpClient.Read()中处理IAC字节
EN

Stack Overflow用户
提问于 2012-12-22 01:26:18
回答 1查看 477关注 0票数 0

我正在使用TcpClient作为字节数组从远程登录服务器读取数据,并使用ASCII码将数据转换为字符串,即:

代码语言:javascript
运行
复制
int size;
byte[] buf;
tcpclient.Read(buf,0,MAX_BUFFER_SIZE);
string resp = new System.Text.ASCIIEncoding().GetString(fullBuffer, 0, fullBuffer.Length);

并使用读取的字节进行buf。我想在buf中提取(稍后回答) IAC命令,而不是将它们放在resp中。你有没有一个有效的建议方法。

我首先想到的是:在resp中找到"\0xFF“字符串(a)如果后面跟着"\0xFF",则将"\0xFF\0xFF”替换为"\0xFF“(b)如果不是,则提取后面的字节作为IAC并回答。resp.Remove()两个字符。

这是一个有效的解决方案吗?你建议在ASCII层解决这个问题吗(有没有办法让byte[]中的一些值被byte[]编码器忽略?)或者在编码成string之后

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-22 01:32:43

我首先想到的是:在resp (a)中找到"\0xFF“字符串,如果后面是"\0xFF",则将"\0xFF\0xFF”替换为"\0xFF“(b)如果不是,则提取后面的字节作为IAC

answer。resp.Remove()两个字符。

A部分是可行的,但b部分是欠缺的。有几个命令的长度超过2个字节。您将不得不做更多的工作,并确定每个命令应该消耗多少字节。例如,SB命令将包含可变数量的字节,这取决于子选项是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13994551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档