public void ThreadProc() { DataStructure data; System.Net.EndPoint remoteEP; DateTime dt = DateTime.Now; byte[] byData = new byte[300]; int iLen; while (!m_bStreamThreadStop) { try { Thread.Sleep(500); dt = DateTime.Now; if (udpStream.DataArrive(100)) { if (udpStream.RecvUDP(out remoteEP, byData, out iLen)) { AddListBoxItem("********** Data received from " + remoteEP.ToString() + " , At " + dt.Hour.ToString() + ":" + dt.Minute.ToString() + ":" + dt.Second.ToString() + " **********"); data = new DataStructure(); data.SetData(byData, iLen); DisplayInform(data); data = null; } else { AddListBoxItem("Failed to received"); } } } catch (ObjectDisposedException) { this.m_bStreamThreadTerminate = true; break; } catch (Exception ex) { MessageBox.Show(ex.Message); this.m_bStreamThreadTerminate = true; break; } } this.m_bStreamThreadTerminate = true; }
private void timer1_Tick(object sender, EventArgs e) { EndPoint remoteEP; int iUDPRecv, iUDPSend; byte[] byUDPSend; string szUDPRecv, szComRecv; timer1.Enabled = false; if (m_SvrStream.DataArrive(10)) { if (m_SvrStream.RecvUDP(out remoteEP, m_byUDPRecv, out iUDPRecv)) { m_UDPRecv++; textBoxUDPRecv.Text = m_UDPRecv.ToString(); szUDPRecv = Encoding.ASCII.GetString(m_byUDPRecv, 0, iUDPRecv); // pass command to COM port m_SerialSent++; textBoxSerialSent.Text = m_SerialSent.ToString(); if (m_com.AdamTransaction(szUDPRecv, out szComRecv)) { m_SerialRecv++; textBoxSerialRecv.Text = m_SerialSent.ToString(); byUDPSend = Encoding.ASCII.GetBytes(szComRecv); iUDPSend = byUDPSend.Length; if (m_SvrStream.SendUDP(ref remoteEP, byUDPSend, iUDPSend)) { m_UDPSent++; textBoxUDPSent.Text = m_UDPSent.ToString(); } } } } timer1.Enabled = true; }