/// <summary> /// 异步上传共享文件夹 /// </summary> /// <param name="targetIPEndPoint">服务器IPEndPoint</param> /// <param name="csIPEndPoint">Client-Side Server 监听的IPEndPoint</param> /* *<?XML version = "1.0"? /> <Info> <ShareFiles> <File FileName="c#" Hash="888" Size="888"> </File> <File FileName="C++" Hash="999" Size="999"> </File> </ShareFiles> <Client Port=""> </Client> </Info> * */ public void UploadShareDirAsync(IPEndPoint targetIPEndPoint, IPEndPoint csIPEndPoint) { XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); XElement info = new XElement("Info"); XElement shareFiles = new XElement("ShareFiles"); foreach (KeyValuePair<string, string> dict in HPPClient.HashFullNameDict) { try { XElement file = new XElement("File"); FileInfo fi = new FileInfo(dict.Value); file.SetAttributeValue("FileName", fi.Name); file.SetAttributeValue("Hash", dict.Key); file.SetAttributeValue("Size", fi.Length); shareFiles.Add(file); } catch (Exception) { } } XElement client = new XElement("Client"); client.SetAttributeValue("Port", csIPEndPoint.Port); info.Add(client); info.Add(shareFiles); doc.Add(info); string xmlStr = doc.Declaration.ToString() + doc.ToString(); HTTPClient httpClient = new HTTPClient(); httpClient.Encoding = Encoding.UTF8; string url = string.Format("http://{0}:{1}/", targetIPEndPoint.Address, targetIPEndPoint.Port); Uri uri = new Uri(url); httpClient.UploadStringAsync(uri, "POST", xmlStr); }