示例#1
0
        private void Tcp_Sendbtn_Click(object sender, System.EventArgs e)
        {
            if (bConnected)
            {
                try
                {
                    lock (this)
                    {
                        byte[] s = { };
                        s = Program.Data_Tcp.DataSend_Tcp.ToArray();

                        if (DataPackingFlag_Tcp)
                        {
                            int    slen  = s.Length;
                            string stemp = "";
                            for (int i = 1; i <= slen; i++)
                            {
                                if (s[i - 1] < 0x10)
                                {
                                    stemp += "0";
                                }
                                stemp += Convert.ToString(s[i - 1], 16) + " ";
                            }
                            RecvRichTextBox.Text = "Send    : " + stemp + "\n" + RecvRichTextBox.Text;
                            socket.Send(s);
                            /* Timer Start*/
                            Recv_Timer.Stop();
                            Recv_Timer.Interval = Convert.ToInt32(Time_Out_Textbox.Text);
                            Recv_Timer.Start();
                            Tcp_Sendbtn.Enabled = false;
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Connect to " + myIPtextBox.Text + "failed !");
                    TcpInit();
                    Disconnect_Tcp();
                }
            }
        }
示例#2
0
        public Socket socket  = null;                  /* Socket通信 */

        /* Name:     AcceptMessage()
         * Function: A thread especially for Accept Tcp Message
         *           Used a timer for timeout
         * Return:   void
         */
        public void AcceptMessage()
        {
            while (bConnected)
            {
                try
                {
                    string sTemp    = "";
                    byte[] DataRecv = new byte[1024];
                    int    result   = socket.Receive(DataRecv);             /* Waitting for the Data until it comes */
                    Recv_Timer.Stop();                                      /* If time <= 1000 , Timer stops */
                    for (int i = 0; i < result; i++)                        /* 将接收到的byte数据存储到byte数组,并赋与sTemp*/
                    {
                        if (DataRecv[i] < 0x10)
                        {
                            sTemp += "0";
                        }
                        sTemp += Convert.ToString(DataRecv[i], 16) + " ";
                    }
                    RecvRichTextBox.Text = "Recv    : " + sTemp + "\n" + RecvRichTextBox.Text;


                    Program.Data_Tcp.DataRecv_Tcp = new List <byte> {
                    };
                    for (int i = 0; i < result; i++)
                    {
                        Program.Data_Tcp.DataRecv_Tcp.Add(DataRecv[i]);
                    }
                    DataAnalyze_Tcp();
                }
                catch
                {
                    MessageBox.Show("Disconnected !");
                    TcpInit();
                }
            }
        }
示例#3
0
 private void Recv_Timer_Tick(object sender, EventArgs e)
 {
     RecvRichTextBox.Text = "Recv    : Error,Receive time Out ! " + "\n" + RecvRichTextBox.Text;
     Recv_Timer.Stop();
     Recv_Timer.Interval = Convert.ToInt32(Time_Out_Textbox.Text);
 }