Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
        /// <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);
        }