Esempio n. 1
0
        // 서버 수신메서드
        public async Task Read()
        {
            if (!netStream.CanRead)
            {
                return;
            }

            try
            {
                StreamReader reader = new StreamReader(netStream);

                string[] msg = (await reader.ReadLineAsync()).Split(',');

                if (msg.Length > 1)
                {
                    FormCollection frms = Application.OpenForms;

                    for (int i = 0; i < frms.Count; i++)
                    {
                        if (frms[i] == null)
                        {
                            continue;
                        }

                        if (frms[i] is PopMain)
                        {
                            PopMain pop = (PopMain)frms[i];
                            // 해당 POP의 라인아이디와 같은 경우
                            if (pop.WorkerInfo.LineID == Convert.ToInt32(msg[0]))
                            {
                                //respone 형태 (실시간모니터인지 아닌지(0), 라인아이디(1),메세지(2),생산실적아이디(3),완료여부(4),총 투입수량(5))
                                ReceiveEventArgs e = new ReceiveEventArgs();
                                if (msg.Length == 5)
                                {
                                    e.LineID        = int.Parse(msg[0]);
                                    e.Message       = msg[1];
                                    e.PerformanceID = msg[2];
                                    e.IsCompleted   = bool.Parse(msg[3]);
                                    e.QtyImport     = int.Parse(msg[4]);
                                }
                                else if (msg.Length == 3)
                                {
                                    e.LineID      = int.Parse(msg[0]);
                                    e.Message     = msg[1];
                                    e.IsCompleted = bool.Parse(msg[2]);
                                }

                                if (e.Message != null)
                                {
                                    Debug.WriteLine(msg[0]);
                                    if (Received != null)
                                    {
                                        Received?.Invoke(this, e);
                                    }
                                }
                            }
                        }
                    }
                }
            }


            catch (Exception ex)
            {
                WriteLog(ex);
                ErrorMessage(ex);
            }
        }
Esempio n. 2
0
 public void Receive(object sender, ReceiveEventArgs e)
 {
     Task.Factory.StartNew(ReceiveMessage, e).Wait();
 }