/// <summary> /// 任务执行完后 /// </summary> void runner_TaskFinished() { try { //发送结果数据到服务器 string path = runner.ResultRinexFtp; TcpClient newclient = new TcpClient(controlIp, controlPort); BinaryWriter newbr = new BinaryWriter(newclient.GetStream()); TelMsg tMsg = new TelMsg() { MsgType = Winform.MsgType.Path, XmlContent = path, From = Geo.Utils.NetUtil.GetIp(), To = controlIp }; newbr.Write(tMsg.ToXml()); newbr.Flush(); } catch (Exception ex) { ShowInfo("向服务器返回数据出错:" + ex.Message); } }
/// <summary> /// 任务执行完后,报告控制端,让其下载结果。 /// </summary> void ReportResultToServer(string ResultUrl) { try { //发送结果数据到服务器 // string ResultUrl = "";//runner.ResultRinexFtp; TcpClient newclient = new TcpClient(MasterIp, MasterPort); BinaryWriter newbr = new BinaryWriter(newclient.GetStream()); TelMsg tMsg = new TelMsg() { MsgType = Winform.MsgType.Path, XmlContent = ResultUrl, From = Geo.Utils.NetUtil.GetIp(), To = MasterIp }; newbr.Write(tMsg.ToXml()); newbr.Flush(); } catch (Exception ex) { log.Info("向服务器返回数据出错:" + ex.Message); } }
/// <summary> /// 运行客户端,调用。 /// </summary> /// <param name="node"></param> /// <returns></returns> private string RunOne(GofComputeNode node) { string str = ""; try { //列表,记录任务 int taskIndex = ComputeNodeTaskDic[node]; if (node.TaskCount <= taskIndex) { return(node + " 所有任务已经执行完!"); } var task = node.Tasks[taskIndex]; TelMsg tMsg = new TelMsg() { MsgType = Winform.MsgType.Task, XmlContent = task.ToXml(), From = Geo.Utils.NetUtil.GetFirstIp(), To = node.Ip }; TcpClient client = new TcpClient(node.Ip, node.Port); NetworkStream stream = client.GetStream(); BinaryReader br = new BinaryReader(stream); BinaryWriter bw = new BinaryWriter(stream); bw.Write(tMsg.ToXml()); bw.Flush(); //BinaryWriter.Close(); str = br.ReadString(); //工作编号增加1 ComputeNodeTaskDic[node]++; } catch (Exception ex) { str = node + "出错, " + ex.Message; //失败的节点 failedThreadCount++; } return(str); }