如何从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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |