private void btnStart_Click(object sender, EventArgs e) { SrvRun = true; LoggedInCount = 0; List<string> UserList = new List<string>(); using (StreamReader sr = new StreamReader(Path.Combine(Application.StartupPath, "UserList.txt"), Encoding.UTF8)) { string line = ""; while ((line = sr.ReadLine()) != null) { UserList.Add(line.ToString().Trim()); } } if (UserList.Count < nUDConnects.Value) { MessageBox.Show("測試帳號樣本不夠."); return; } string UserID = ""; for (int i = 0; i < nUDConnects.Value; i++) { UserID = UserList[i]; ClientSocket clientSocket = new ClientSocket(GetLX_IP(IP.Text), Convert.ToInt32(Port.Text)); clientSocket.Connect(true); //clientSocket.ReciveMsg -= ReciveMsgs; clientSocket.ReciveMsg += ReciveMsgs; clientSocket.Send("Log in", "0", UserID, "Test User #" + i.ToString(), "", Guid.NewGuid().ToString().ToString().Replace("-", "").ToUpper()); // 將新連接加入轉發表並創建線程為其服務 lock (_transmit_tb.SyncRoot) { _transmit_tb.Add(UserList[i], clientSocket); } try { Thread clientThread = new Thread(new ParameterizedThreadStart(ThreadFunc)); //加入哈希表 _thread_tb.Add(UserID, clientThread); clientThread.Start(UserID); this.BeginInvoke(updateSendUi, DateTime.Now.ToString("HH:mm:ss:fff") + "->" + UserID + "成功連接到服務器"); //richTextBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:fff") + ": " + UserID + "成功連接到服務器" + IP.Text + "\r\n"); } catch (Exception ex) { try { // 發生錯誤時移除連接 lock (_transmit_tb.SyncRoot) { //_transmit_tb.Add(UserID, newClient); _transmit_tb.Remove(UserID); } this.BeginInvoke(updateSendUi, DateTime.Now.ToString("HH:mm:ss:fff") + "->" + UserID + "無法連接到服務器"); //richTextBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:fff") + ": " + UserID + "無法連接到服務器" + IP.Text + "\r\n"); } catch { } } } }
private void btnLogin_Click(object sender, EventArgs e) { string UserID = ""; int FailedCount = 0; this.BeginInvoke(updateStatUi, FailedCount); int i = 1024; foreach (ListViewItem item in lvUsersList.Items) { UserID = item.SubItems["user_id"].Text; ClientSocket clientSocket = new ClientSocket(GetLX_IP(IP.Text), Convert.ToInt32(Port.Text)); clientSocket.ReciveMsg -= ReciveMsgs; clientSocket.ReciveMsg += ReciveMsgs; clientSocket.Connect(true); item.Tag = clientSocket; item.SubItems["login_start"].Text = DateTime.Now.ToString("HH:mm:ss.fff"); try { clientSocket.Send("PC33", "0", UserID, UserID, "", Guid.NewGuid().ToString().ToString().Replace("-", "").ToUpper()); //登錄數據 //類別A;流量(Byte);耗時(ms);開始(當地)日期(yyyy/MM/dd);開始(當地)時間(HH:mm:ss.fff);結束(當地)日期(yyyy/MM/dd);結束(當地)時間(HH:mm:ss.fff)|類別B;流量(Byte);耗時(ms);開始(當地)日期(yyyy/MM/dd);開始(當地)時間(HH:mm:ss,fff);結束(當地)日期(yyyy/MM/dd);結束(當地)時間(HH:mm:ss,fff) clientSocket.Send("1;" + i.ToString() + ";10;2016/06/04;11:54:12.123;2016/06/04;11:54:12.133", "Z", UserID, "", "", Guid.NewGuid().ToString().ToString().Replace("-", "").ToUpper()); i += 1024; } catch (Exception ex) { FailedCount++; this.BeginInvoke(updateStatUi, FailedCount); item.SubItems["msg_text"].Text = ex.Message; item.SubItems["user_state"].Text = "失敗"; } // 將新連接加入轉發表並創建線程為其服務 //lock (_transmit_tb.SyncRoot) //{ // _transmit_tb.Add(UserList[i], clientSocket); //} //try //{ // Thread clientThread = new Thread(new ParameterizedThreadStart(ThreadFunc)); // //加入哈希表 // _thread_tb.Add(UserID, clientThread); // clientThread.Start(UserID); // this.BeginInvoke(updateSendUi, DateTime.Now.ToString("HH:mm:ss:fff") + "->" + UserID + "成功連接到服務器"); // //richTextBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:fff") + ": " + UserID + "成功連接到服務器" + IP.Text + "\r\n"); //} //catch (Exception ex) //{ // try // { // // 發生錯誤時移除連接 // lock (_transmit_tb.SyncRoot) // { // //_transmit_tb.Add(UserID, newClient); // _transmit_tb.Remove(UserID); // } // this.BeginInvoke(updateSendUi, DateTime.Now.ToString("HH:mm:ss:fff") + "->" + UserID + "無法連接到服務器"); // //richTextBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:fff") + ": " + UserID + "無法連接到服務器" + IP.Text + "\r\n"); // } // catch // { } //} } }
private void btnLogin_Click(object sender, EventArgs e) { try { clientSocket = new ClientSocket(GetLX_IP(IP.Text), Convert.ToInt32(Port.Text)); clientSocket.Connect(true); clientSocket.ReciveMsg -= ReciveMsgs; clientSocket.ReciveMsg += ReciveMsgs; clientSocket.Send(NAME.Text, "0", ID.Text, NAME.Text, "", Guid.NewGuid().ToString().ToString().Replace("-", "").ToUpper()); //richTextBox1.AppendText(ID.Text + "已經連接到服務器" + IP.Text + "\r\n"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }