void NhanData() { try { while (true) { byte[] data = new byte[1024 * 5000]; client.Receive(data); string message = (string)GomManh(data); toolStripStatusLabel1.Text = "Text received form " + message; if (message.Contains("&&")) { checkedListBox1.Items.Add((message.Substring(0, 5))); toolStripStatusLabel1.Text = "Số client đang kết nối: " + checkedListBox1.Items.Count; } if (message.Contains("$$")) { foreach (string name in checkedListBox1.Items) { for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (message.Substring(0, 5).CompareTo(name) == 0) { checkedListBox1.Items.RemoveAt(i); } } } toolStripStatusLabel1.Text = "Số client đang kết nối: " + checkedListBox1.Items.Count; } // Thêm tin nhắn vào khung chat UpdateTextMessenger text = UpdateTextData; if (webBrowser1.InvokeRequired) { Invoke(text, webBrowser1, message); } } } catch (Exception) { MessageBox.Show("Ngắt kết nối!", "Thoát", MessageBoxButtons.OK, MessageBoxIcon.Error); NgatKetNoi(); } }
void NhanData(object obj) { Socket client = obj as Socket; try { while (true) { byte[] data = new byte[1024 * 9999]; client.Receive(data); string message = (string)GomManh(data); //Client yêu cầu lấy danh sách cách client đang online if (message.Contains("get_client")) { foreach (object name in this.checkedListBoxClientList.Items) { foreach (Socket item in clients) { if (item != null) { item.Send(PhanManh(name + " is online&&")); } } } } //Client kết nối thành công if (message.Contains("@@")) { clientcount = clients.Count; checkedListBoxClientList.Items.Add(message.Substring(0, 5)); toolStripStatusLabel1.Text = "Số client đang kết nối: " + clientcount; toolStripStatusLabel2.Text = "Client connected!"; } //Client disconnect if (message.Contains("$$")) { foreach (Socket item in clients) { if (item != null && item != client) { item.Send(PhanManh((string)GomManh(data))); } } UpdateTextMessenger text1 = UpdateTextData; if (webBrowser1.InvokeRequired) { Invoke(text1, webBrowser1, message); } string user = message.Substring(0, 5); foreach (string name in checkedListBoxClientList.Items) { if (user.CompareTo(name) == 0) { checkedListBoxClientList.Items.Remove(name); } } } //Thêm data vào khung chát đồng thời gửi tin nhắn của client này đến tất cả các client khác trong server foreach (Socket item in clients) { if (item != null && item != client) { item.Send(PhanManh((string)GomManh(data))); } } UpdateTextMessenger text = UpdateTextData; if (webBrowser1.InvokeRequired) { Invoke(text, webBrowser1, message); } } } catch (Exception) { clients.Remove(client); toolStripStatusLabel1.Text = "Số client đang kết nối: " + checkedListBoxClientList.Items.Count; toolStripStatusLabel2.Text = "Client disconnected!"; client.Close(); } }