예제 #1
0
 // ����
 private void buttonConnect_Click(object sender, EventArgs e)
 {
     try
     {
         tcpClient = new TcpClient();
         connectDone.Reset();
         tcpClient.BeginConnect(IPAddress.Parse(textBoxConnIP.Text),
             36503,
             new AsyncCallback(ConnectCallback),
             tcpClient);
         connectDone.WaitOne();
         toolStripStatusLabel1.Text = "Connected!";
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     networkStream = tcpClient.GetStream();
     lock (networkStream)
     {
         receiveClass rc = new receiveClass(networkStream, new UpdateDelegate(MsgCallback));
         Thread thread = new Thread(new ThreadStart(rc.receiveThread));
         thread.IsBackground = true;
         thread.Start();
     }
 }
예제 #2
0
        /// <summary>
        /// �������˵�TcpClient�ص�����
        /// </summary>
        /// <param name="ar"></param>
        private void AcceptTcpClientCallback(IAsyncResult ar)
        {
            TcpListener listener = (TcpListener)ar.AsyncState;
            TcpClient tcpClient = listener.EndAcceptTcpClient(ar);

            toolStripStatusLabel1.Text = "Connection Established!";

            // ��TcpClient�л�ȡNetworkStream
            networkStream = tcpClient.GetStream();

            lock (networkStream)
            {
                receiveClass rc = new receiveClass(networkStream, new UpdateDelegate(MsgCallback));
                Thread thread = new Thread(new ThreadStart(rc.receiveThread));
                thread.IsBackground = true;
                thread.Start();
            }

            // ��ֹtcpClientConnected
            tcpClientConnected.Set();
        }