我们假设_sslStream
是客户端建立的SslStream
连接。
private void DoStuff(string message)
{
_streamWriter = new StreamWriter(_sslStream) { AutoFlush = true };
_streamWriter.Write(GetGzipBytes("hello world"));
}
private static byte[] GetGzipBytes(string message)
{
//Not a final implementation. Cannot add string "<EOF>" mark
return Encoding.UTF8.GetBytes(message);
}
如何在服务器端检测到接收到的字节是否完整?
是否有一些推荐的“字节数组结束”标记我应该添加到数组的末尾?
如何确保GetGzipBytes()
方法不会产生在消息中包含这些字节的byte[]
?
如果是字符串,我会打电话:
_streamReader.ReadLine();
答案 0 :(得分:2)
对于二进制消息,没有办法做到这一点。您需要知道事先传输的字节数,或者需要添加已定义的消息结束指示符。
答案 1 :(得分:-1)
只需调用_streamWriter.End() - 它将结束当前网络流并发送给客户端。就是这样。
请注意 - 它不会传递您的代码示例,因为您的流不是网络流。
您可以使用_stream.BinaryWrite(byteArray)来编写字节数组。对于网络流。