Ejemplo n.º 1
0
 public frClient()
 {
     InitializeComponent();
     this.Padding      = new Padding(1);
     txbNhapIP.Visible = true;
     txbNhapIP.Text    = CaiDat.Server;
     sender            = new NguoiGui()
     {
         Address = CaiDat.Server, Port = CaiDat.Port, Tcp = CaiDat.TcpServer
     };
     t = new Thread(Listening);
     t.Start();
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Lắng nghe các client kết nối đến
 /// </summary>
 void Listening()
 {
     while (_running)
     {
         try
         {
             TcpClient client = tcpListen.AcceptTcpClient();
             lstClient.Add(client);
             NguoiGui sender = conversation.ThemClient(client);
             sender.call = new NguoiGui.CallBack(RefreshWeb);      // Khi sender thực hiện delegate nó sẽ gọi lại Refresh Web
             // Tạo 1 thread mới để lắng nghe client này
             Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClient));
             clientThread.Start(client);
             LoadListSender();
         }
         catch { }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Lắng nghe từng client
        /// </summary>
        /// <param name="client"></param>
        void HandleClient(object client)
        {
            TcpClient     tcpclient = (TcpClient)client;
            NguoiGui      sender    = conversation.GetSender(tcpclient);
            TinNhan       mes;
            NetworkStream ns = tcpclient.GetStream();
            StreamReader  sr = new StreamReader(ns);
            string        s;

            while (tcpclient.Connected)
            {
                try
                {
                    s = sr.ReadLine();

                    if (s != null)
                    {
                        if (s == CaiDat.MarkSendFile)       // Nếu gửi file
                        {
                            s = DoReciveFile(sr);
                        }
                        mes = new TinNhan()
                        {
                            Content = s, Sender = sender, Time = DateTime.Now
                        };
                        conversation.ThemTinNhan(mes);
                        RefreshWeb();
                        continue;
                    }
                }
                catch { }
                // Ko nhận được dữ liệu nữa có nghĩa là nó ngắt kết nối rồi
                RemoveClient(tcpclient);
                Thread.CurrentThread.Abort();
            }
        }