嗨堆栈溢出团队,
我正在创建一个客户端-服务器应用程序,它从服务器端使用 System.Net 通过 TCP 客户端传输数据。从客户端,需要获取这些并将其分配给所需的数据类型。
为了显示 :
从服务器端: -
///Write frame header
string Header = "\r\nContent-Type: MovieName \r\nContent-Length: {0}\r\n\r\n
content:";
byte[] hBytes = Encoding.UTF8.GetBytes(string.Format(Header, databyte.Length));
client.GetStream().Write(headerBytes, 0, hBytes.Length);
client.GetStream().Flush();
//Write the Movie Data ( System.Array Length = 10 * 2D integer Array).
client.GetStream().Write(databyte, 0, databyte.Length);
client.GetStream().Flush();
//write footer data
byte[] fBytes = Encoding.UTF8.GetBytes("\r\n");
client.GetStream().Write(fBytes, 0, fBytes.Length);
client.GetStream().Flush();
这里,页眉和页脚是使用 Encoding.UT8.GetBytes() 转换为 Byte 的字符串类型,作为流的 Databyte 是使用 BinaryFormatter 类转换的 System.Array 类型
BinaryformatterObject.Serialize(MemoryStream,MovieData)
databyte = MemoryStream.ToArray();
可以使用 HTTPWEBRESPONSEOBJ.GetresponseStream() 从客户端接收带有 (Header, Data, Footer) 的整个缓冲区到一个字节 [] 数组中。
但是,我需要将发送到流的数据与页眉和页脚分开,并将其存储回 System.Array obj 以便在客户端进行进一步处理。
我尝试了从客户端获取的缓冲区中的一些方法,但没有奏效,
- 将客户端中的缓冲区存储为字符串并单独解析内容字符串并提取 Array 。
- 我想在开始和结束时忽略几个字节的缓冲区信息,以修剪并仅获取其间的数据,但这也是不可能的,因为客户端必须知道页眉和页脚的大小。
有没有我可以遵循的其他结构来实现这一点:以便我可以将忽略页眉和页脚的数据转换为 Array 对象并将其用于客户端的进一步处理?我是否需要从服务器端合并任何结构来传输其数据类型?
提前致谢 !!