// ���� 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(); } }
/// <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(); }