public File_Info read_file(byte[] raw_data, int length_data) { File_Info ret = new File_Info(); ret.total_content_length = length_data; // read file name length byte[] file_name_length = new byte[4]; Array.Copy(raw_data, 0, file_name_length, 0, 4); ret.file_name_length = BitConverter.ToInt32(file_name_length, 0); // read file name byte[] file_name_bytes = new byte[ret.file_name_length]; Array.Copy(raw_data, 4, file_name_bytes, 0, ret.file_name_length); ret.file_name = Encoding.ASCII.GetString(file_name_bytes); // read file content ret.file_content_length = ret.total_content_length - 4 - ret.file_name_length; ret.content = new byte[ret.file_content_length]; Array.Copy(raw_data, 4 + ret.file_name_length, ret.content, 0, ret.file_content_length); ret.content_string = Encoding.ASCII.GetString(ret.content, 0, ret.file_content_length); return ret; }
public void display_info(File_Info _file_info) { Console.WriteLine(String.Format("Total Data Received: {0} Bytes", _file_info.total_content_length)); Console.WriteLine(String.Format("File Name: {0}", _file_info.file_name)); Console.WriteLine(String.Format("File Content: {0}", _file_info.content_string)); }