Ejemplo n.º 1
0
        /// <summary>
        /// 接收报文后的响应报文的发送方法,并改变Form1的某些类的实例的外观
        /// </summary>
        private void sendData()
        {
            if (ClientIPCombobox.SelectedIndex == -1)
            {
                ClientIPCombobox.Text = string.Empty;
                MessageBox.Show("请重新选择客户端");
                return;
            }
            Socket socket = connect.clientsocketList[ClientIPCombobox.SelectedIndex];

            try
            {
                byte[] data = Tools.strToToHexByte(textBox50.Text);

                //添加日志
                string sourcestr  = ((System.Net.IPEndPoint)socket.RemoteEndPoint).Address.ToString() + ":" + ((System.Net.IPEndPoint)socket.RemoteEndPoint).Port.ToString();
                string strsendlog = "\r\n\r\n" + ">>>>" + sourcestr + " " + DateTime.Now.ToString() + "\r\n" + textBox50.Text;
                addLog(strsendlog);
                //发送数据
                socket.Send(data);
                FormMessageTextBox.AppendText("\r\n响应信息发送成功");
            }
            catch (Exception)
            {
                Console.WriteLine("sendData出现异常");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 开始服务器的委托方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void startServerbtn_Click(object sender, EventArgs e)
        {
            if (IP.Text == string.Empty)
            {
                MessageBox.Show("请输入IP");
                return;
            }
            else
            {
                try
                {
                    if (ServerStartBtn.Text == "开始")
                    {
                        FormMessageTextBox.AppendText(Environment.NewLine + "\r\n准备打开服务器");
                        Connect();
                        FormMessageTextBox.AppendText(Environment.NewLine + "打开服务器");
                        ServerStartBtn.Text = "停止";
                    }
                    else
                    {
                        FormMessageTextBox.AppendText(Environment.NewLine + "准备停止服务器");
                        if (connect.myThread.IsAlive)
                        {
                            Console.WriteLine("slidgsdsjl ");
                        }

                        /*
                         * connect.myThread.Abort();
                         * connect.myThread.Join();
                         * connect.dataReceivedThread.Abort();
                         * connect.dataReceivedThread.Join();
                         */
                        connect.stopServer();///异常:空的引用异常。
                        FormMessageTextBox.AppendText(Environment.NewLine + "停止服务器");
                        ServerStartBtn.Text = "开始";
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("出现异常:" + ex.StackTrace);
                    Console.WriteLine("出现异常:" + ex.Message);
                    FormMessageTextBox.AppendText("\r\n出现异常:" + ex.Message + "未能打开服务器,并关闭所有连接。");

                    /*
                     * connect.myThread.Abort();
                     * connect.myThread.Join();
                     * connect.dataReceivedThread.Abort();
                     * connect.dataReceivedThread.Join();
                     */
                    connect.stopServer();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 主进程连接入口
        ///
        /// </summary>
        public void Connect()
        {
            string ipstring = IP.Text;
            string port     = Port.Text;

            try
            {
                connect = new EstablishConnect(IPAddress.Parse(ipstring), Convert.ToInt16(port));//connect是一个具有构造方法的EstablishConnect的实例
                connect.socketstart();
                FormMessageTextBox.AppendText("\r\n启动监听");
                connect.clientChanged += connect_clientChanged;
                connect.dataReceived  += connect_dataReceived;
            }
            catch (Exception ex)
            {
                Console.WriteLine("出现异常:" + ex.StackTrace);
                Console.WriteLine("出现异常:" + ex.Message);
                FormMessageTextBox.AppendText("\r\n出现异常:" + ex.Message);
            }
        }