Exemplo n.º 1
0
        /// <summary>
        /// 断开连接
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDisconnect_Click(object sender, EventArgs e)
        {
            socketclient.Close();
            timer1.Stop();
            ChessPanel.isGameOver = true;
            delStep(0);

            lblHelp.Text          = "未连接网络";
            btnConnect.Enabled    = true;
            btnBack.Enabled       = false;
            btnStart.Enabled      = false;
            btnDisconnect.Enabled = false;
            btnChange.Enabled     = true;
            txtName.Enabled       = true;

            OnReceiveMsg -= new ChessEventReceiveHander(ManageChessEvent);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 连接服务器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConnect_Click(object sender, EventArgs e)
        {
            //定义一个套接字
            socketclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  //ipv4,支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界,tcp
            socketclient.DontFragment = true;
            //获取文本框中的IP地址
            IPAddress address = IPAddress.Parse(txtIP.Text.Trim());

            //将获取的IP地址和端口号绑定在网络节点上
            IPEndPoint point = new IPEndPoint(address, Convert.ToInt32(numericUpDown_port.Value));

            try
            {
                //客户端套接字连接到网络节点上,用的是Connect
                socketclient.Connect(point);
                socketclient.NoDelay = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine("连接失败");
                MessageBox.Show(ex.Message, "连接失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //进行一系列初始化和设置
            this.btnConnect.Enabled = false;
            btnBack.Enabled         = true;
            btnDisconnect.Enabled   = true;
            btnChange.Enabled       = false;
            txtName.Enabled         = false;
            btnStart.Enabled        = false;
            lblWinner.Text          = "暂无";
            ChessPanel.APieces.Clear();
            ChessPanel.BPieces.Clear();
            chessPanel.Refresh();


            OnReceiveMsg += new ChessEventReceiveHander(ManageChessEvent);

            threadclient = new Thread(Receive);
            threadclient.IsBackground = true;
            threadclient.Start();
        }