Example #1
0
        public string J_JobOperation(string operation, J_JsonJobData json_JobData)
        {
            string res = operation;

            if (operation == "add_job")
            {
                bool notInList = true;
                foreach (var i in jobList)
                {
                    if (i.job_Id == json_JobData.job_Id)
                    {
                        notInList = false; res = "job id:" + json_JobData.job_Id + " already in list"; break;
                    }
                }
                if (notInList)
                {
                    jobList.Add(json_JobData);
                    res = json_JobData.job_Id + "->" + json_JobData.job_name + ":" + "job added to list";
                }
            }
            if (operation == "remove_job")
            {
                foreach (var i in jobList)
                {
                    if (i.job_Id == json_JobData.job_Id)
                    {
                        jobList.Remove(i);
                        res = json_JobData.job_Id + "->" + json_JobData.job_name + ":" + "job_removed";
                        //c#foreach迭代器好像有问题,移除元素后会超出循环范围,以后再解决吧,先break
                        break;
                    }
                }
            }
            if (operation == "start_job")
            {
                foreach (var i in jobList)
                {
                    if (i.job_Id == json_JobData.job_Id && i.job_name == json_JobData.job_name)
                    {
                        i.job_state = "waiting";
                        res         = "set job state to " + operation;
                    }
                }
            }
            if (operation == "stop_job")
            {
                foreach (var i in jobList)
                {
                    if (i.job_Id == json_JobData.job_Id && i.job_name == json_JobData.job_name)
                    {
                        i.job_state = "stop";
                        res         = "set job state to " + operation;
                    }
                }
            }
            if (operation == "start_worker")
            {
                workerState = true;
                res         = "worker started";
            }
            if (operation == "stop_worker")
            {
                workerState = false;
                res         = "worker stoped";
            }
            return(res);
        }
Example #2
0
 public J_Client(Socket _socket)
 {
     listenClient = _socket;
     //string reciveStr = "";
     //Console.WriteLine("client connected");
     while (listenClient.Connected)
     {
         try
         {
             int dataLength = listenClient.Receive(result);
             //Console.WriteLine("shuju:"+ dataLength);
             if (dataLength > 0)
             {
                 string job_type = Encoding.ASCII.GetString(result, 0, dataLength);
                 //接收信息,并反馈
                 if (job_type.Contains(job_type))
                 {
                     if (job_type == "get_job_list")
                     {
                         foreach (string temp in j_JobManage.J_GetJobList())
                         {
                             listenClient.Send(Encoding.UTF8.GetBytes(temp));
                             dataLength = listenClient.Receive(result);
                         }
                         listenClient.Send(Encoding.UTF8.GetBytes("list_ended"));
                         Console.WriteLine("send_job_list");
                         break;
                     }
                     else
                     {
                         //string res=j_JobManage.J_JobOperation(job_type);
                         listenClient.Send(Encoding.UTF8.GetBytes("operation :" + job_type));
                         dataLength = listenClient.Receive(result);
                         string job_data = Encoding.ASCII.GetString(result, 0, dataLength);
                         try
                         {
                             J_JsonJobData tempData = JsonConvert.DeserializeObject <J_JsonJobData>(job_data);
                             string        res      = j_JobManage.J_JobOperation(job_type, tempData);
                             listenClient.Send(Encoding.UTF8.GetBytes(res));
                             Console.WriteLine(res); break;
                         }
                         catch
                         {
                             listenClient.Send(Encoding.UTF8.GetBytes(job_type + " failed"));
                             Console.WriteLine(job_type + " failed"); break;
                         }
                     }
                 }
                 else
                 {
                     listenClient.Send(Encoding.UTF8.GetBytes("operation not defiend")); break;
                 }
             }
             else
             {
                 //listenClient.Close();
                 break;
             }
         }
         catch
         {
             break;
         }
     }
     Console.WriteLine(listenClient.RemoteEndPoint.ToString() + "通讯结束");
     listenClient.Shutdown(SocketShutdown.Both);
     listenClient.Close();
 }