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); }
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(); }