public void TestGetFileInfo() { FileInfomations fileinfo = new FileInfomations(); List<IPEndPoint> ipepList = new List<IPEndPoint>(); fileinfo.IPEndPointList = ipepList; fileinfo.BlockNumber = 88; fileinfo.LastBlockSize = 12365; fileinfo.Size = 886459; fileinfo.IPEndPointList.Add(new IPEndPoint(IPAddress.Parse("192.168.0.88"),5555)); fileinfo.IPEndPointList.Add(new IPEndPoint(IPAddress.Parse("192.168.0.99"), 6666)); fileinfo.IPEndPointList.Add(new IPEndPoint(IPAddress.Parse("192.168.1.99"), 3333)); hashUser.Add("123",fileinfo); string ret = GetFileInfomation((string) urlInfo["Hash"]); Console.WriteLine(ret); Console.WriteLine(); XDocument doc = new XDocument(); try { doc = XDocument.Parse(ret); //TextReader tr = new StringReader(ret); ; //doc = XDocument.Load(tr); } catch (Exception) { Console.WriteLine("body数据不符合xml格式!fuckfukcukfjkc"); } Console.WriteLine(doc.Declaration.ToString()); Console.WriteLine(doc.ToString()); // Console.WriteLine(GetFileInfomation((string)urlInfo["Hash"])); }
/// <summary> /// 保存用户的共享文件等信息 /// </summary> /// <param name="data">一个xml格式的string</param> /// <param name="remoteEndPoint">用户的IPEndPoint</param> protected void SaveUserFilesInfo(string data,EndPoint remoteEndPoint) { XDocument doc = new XDocument(); IPEndPoint ipEndPoint = null; try { ipEndPoint = (IPEndPoint) remoteEndPoint; } catch (Exception) { Console.WriteLine("remoteEndPoint有错"); } try { TextReader tr = new StringReader(data);; doc = XDocument.Load(tr); } catch (Exception e) { Console.WriteLine("body数据不符合xml格式!"); } try { //没有共享文件时返回 if (doc.Descendants("File").Count() == 0) { // Console.WriteLine("没有共享文件"); return; } var files = from f in doc.Descendants("File") select new { fileName = f.Attribute("FileName").Value, hash = f.Attribute("Hash").Value,fileSize =f.Attribute("Size") }; foreach (var file in files) { if (!fileNameHash.ContainsKey(file.fileName)) { fileNameHash.Add(file.fileName,file.hash); } if (!hashUser.ContainsKey(file.hash)) { List<IPEndPoint>userList = new List<IPEndPoint>(); FileInfomations fileinfos = new FileInfomations(); userList.Add(ipEndPoint); fileinfos.IPEndPointList = userList; long size = (long)file.fileSize; fileinfos.Size = (long)file.fileSize; if (size % BLOCKSIZE == 0) { fileinfos.BlockNumber = (int)size/BLOCKSIZE; fileinfos.LastBlockSize = BLOCKSIZE; } else { fileinfos.BlockNumber = (int) size/BLOCKSIZE + 1; fileinfos.LastBlockSize = (int) size%BLOCKSIZE; } hashUser.Add(file.hash,fileinfos); } else { hashUser[file.hash].IPEndPointList.Add(ipEndPoint); } } } catch (Exception) { Console.WriteLine("保共享文件信息时出错!"); } }