加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从C#字符串获取一个空的终止字符串?

发布时间:2020-12-15 06:28:26 所属栏目:百科 来源:网络整理
导读:我正在与需要空终止字符串的服务器进行通信 如何在C#中巧妙地做到这一点? 解决方法 我假设您正在实现某种二进制协议,如果字符串为空终止.你使用的是BinaryWriter吗? 默认的BinaryWriter将字符串作为长度前缀.你可以改变这种行为: class MyBinaryWriter :
>我正在与需要空终止字符串的服务器进行通信
>如何在C#中巧妙地做到这一点?

解决方法

我假设您正在实现某种二进制协议,如果字符串为空终止.你使用的是BinaryWriter吗?

默认的BinaryWriter将字符串作为长度前缀.你可以改变这种行为:

class MyBinaryWriter : BinaryWriter
{
    private Encoding _encoding = Encoding.Default;

    public override void Write(string value)
    {
        byte[] buffer = _encoding.GetBytes(value);
        Write(buffer);
        Write((byte)0);
    }
}

那么你可以写这样的任何字符串:

using (MyBinaryWriter writer = new MyBinaryWriter(myStream))
{
    writer.Write("Some string");
}

您可能需要根据需要调整_encoding位.

当然,您可以根据需要转移的其他数据类型来扩展课程,保持实际的协议实现不错,干净.你可能还需要你自己的(非常相似的)BinaryReader.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读