Try   HackMD

網路程式設計期末專題 程式碼

Server端

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; //匯入網路通訊協定相關函數 using System.Net.Sockets; //匯入網路插座功能函數 using System.Threading; //匯入多執行緒功能函數 using System.Collections; //匯入集合物件 namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int count = 1; string hint = ""; string Tips = "Tips:AB"; string a_char_is = "A=>"; string b_char_is = "B=>"; string A_num = "", B_num = ""; string word = ""; string A_word = ""; string B_word = ""; string input = ""; int i, n; string str = ""; Thread Th;//網路監聽執行緒 TcpListener Server; //伺服端網路監聽器(相當於電話總機) Socket Client; //給客戶用的連線物件(相當於電話分機) Thread Th_Svr; //伺服器監聽用執行緒(電話總機開放中) Thread Th_Clt; //客戶用的通話執行緒(電話分機連線中) Hashtable HT = new Hashtable(); //客戶名稱與通訊物件的集合(雜湊表)(key:Name, Socket) //開啟 Server:用 Server Thread 來監聽 Client private void button1_Click(object sender, EventArgs e) { //忽略跨執行緒處理的錯誤(允許跨執行緒存取變數) CheckForIllegalCrossThreadCalls = false; Th_Svr = new Thread(ServerSub); //宣告監聽執行緒(副程式ServerSub) Th_Svr.IsBackground = true; //設定為背景執行緒 Th_Svr.Start(); //啟動監聽執行緒 button1.Enabled = false; //讓按鍵無法使用(不能重複啟動伺服器) } //接受客戶連線要求的程式(如同電話總機),針對每一客戶會建立一個連線,以及獨立執行緒 private void ServerSub() { //Server IP 和 Port IPEndPoint EP = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text)); Server = new TcpListener(EP); //建立伺服端監聽器(總機) Server.Start(100); //啟動監聽設定允許最多連線數100人 while (true) //無限迴圈監聽連線要求 { Client = Server.AcceptSocket(); //建立此客戶的連線物件Client Th_Clt = new Thread(Listen); //建立監聽這個客戶連線的獨立執行緒 Th_Clt.IsBackground = true; //設定為背景執行緒 Th_Clt.Start(); //開始執行緒的運作 } } //監聽客戶訊息的程式 private void Listen() { Socket Sck = Client; //複製Client通訊物件到個別客戶專用物件Sck Thread Th = Th_Clt; //複製執行緒Th_Clt到區域變數Th while (true) //持續監聽客戶傳來的訊息 { try //用 Sck 來接收此客戶訊息,inLen 是接收訊息的 byte 數目 { byte[] B = new byte[1023]; //建立接收資料用的陣列,長度須大於可能的訊息 int inLen = Sck.Receive(B); //接收網路資訊(byte陣列) string Msg = Encoding.Default.GetString(B, 0, inLen); //翻譯實際訊息(長度inLen) string Cmd = Msg.Substring(0, 1); //取出命令碼 (第一個字) string Str = Msg.Substring(1); //取出命令碼之後的訊息 switch (Cmd) //依據命令碼執行功能 { case "0": //有新使用者上線:新增使用者到名單中 HT.Add(Str, Sck); //連線加入雜湊表,Key:使用者,Value:連線物件(Socket) listBox1.Items.Add(Str); //加入上線者名單 Random rnd = new Random(); int num = rnd.Next(53); switch (num) { case 1: word = "kobe"; hint = "小飛俠"; break; case 2: word = "lebron"; hint = "歷史得分王"; break; case 3: word = "jordan"; hint = "籃球之神"; break; case 4: word = "hardan"; hint = " 鬍子"; break; case 5: word = "oneal"; hint = "ok組合"; break; case 6: word = "paul"; hint = "現役太陽頂尖控球後衛"; break; case 7: word = "irving"; hint = "猶太人事件"; break; case 8: word = "curry"; hint = "歷史三分王"; break; case 9: word = "russell"; hint = "歷史冠軍王"; break; case 10: word = "chanberlain"; hint = "單場100分"; break; case 11: word = "bosh"; hint = "龍王"; break; case 12: word = "wade"; hint = "閃電俠"; break; case 13: word = "durant"; hint = "死神"; break; case 14: word = "butter"; hint = "士官長"; break; case 15: word = "caruso"; hint = "禿曼巴"; break; case 16: word = "williams"; hint = "白巧克力"; break; case 17: word = "rodman"; hint = "小蟲"; break; case 18: word = "jokic"; hint = "小丑"; break; case 19: word = "howard"; hint = "桃園雲豹球員 "; break; case 20: word = "parker"; hint = "法國小跑車"; break; case 21: word = "thompson"; hint = "浪花兄弟"; break; case 22: word = "wiggins"; hint = "枸杞哥"; break; case 23: word = "booker"; hint = "書人"; break; case 24: word = "cousins"; hint = "表弟"; break; case 25: word = "iverson"; hint = "戰神"; break; case 26: word = "rose"; hint = "最年輕mvp"; break; case 27: word = "smith"; hint = "帶刀侍衛"; break; case 28: word = "davis"; hint = "濃眉哥"; break; case 29: word = "doncic"; hint = "胖七七"; break; case 30: word = "gasol"; hint = "紫金王朝鬥牛士"; break; case 31: word = "westbrook"; hint = "忍者龜"; break; case 32: word = "ibaka"; hint = "nba最長"; break; case 33: word = "adams"; hint = "水行俠"; break; case 34: word = "allen"; hint = "雷槍"; break; case 35: word = "garnett"; hint = "狼王"; break; case 36: word = "anthony"; hint = "甜瓜"; break; case 37: word = "lowry"; hint = "聯盟翹屁股"; break; case 38: word = "mitchell"; hint = "蜘蛛人"; break; case 39: word = "green"; hint = "踢蛋綠"; break; case 40: word = " antetokounmpo"; hint = "希臘怪獸"; break; } textBox3.Clear(); textBox3.Text = word; Send("Q"+word); Send("H" +hint); break; case "9": HT.Remove(Str); //移除使用者名稱為Name的連線物件 listBox1.Items.Remove(Str); //自上線者名單移除Name Th.Abort(); //結束此客戶的監聽執行緒 break; case "R": Random r = new Random(); int number = r.Next(53); switch (number) { case 1: word = "kobe"; hint = "小飛俠"; break; case 2: word = "lebron"; hint = "歷史得分王"; break; case 3: word = "jordan"; hint = "籃球之神"; break; case 4: word = "hardan"; hint = " 鬍子"; break; case 5: word = "oneal"; hint = "ok組合"; break; case 6: word = "paul"; hint = "現役太陽頂尖控球後衛"; break; case 7: word = "irving"; hint = "猶太人事件"; break; case 8: word = "curry"; hint = "歷史三分王"; break; case 9: word = "russell"; hint = "歷史冠軍王"; break; case 10: word = "chanberlain"; hint = "單場100分"; break; case 11: word = "bosh"; hint = "龍王"; break; case 12: word = "wade"; hint = "閃電俠"; break; case 13: word = "durant"; hint = "死神"; break; case 14: word = "butter"; hint = "士官長"; break; case 15: word = "caruso"; hint = "禿曼巴"; break; case 16: word = "williams"; hint = "白巧克力"; break; case 17: word = "rodman"; hint = "小蟲"; break; case 18: word = "jokic"; hint = "小丑"; break; case 19: word = "howard"; hint = "桃園雲豹球員 "; break; case 20: word = "parker"; hint = "法國小跑車"; break; case 21: word = "thompson"; hint = "浪花兄弟"; break; case 22: word = "wiggins"; hint = "枸杞哥"; break; case 23: word = "booker"; hint = "書人"; break; case 24: word = "cousins"; hint = "表弟"; break; case 25: word = "iverson"; hint = "戰神"; break; case 26: word = "rose"; hint = "最年輕mvp"; break; case 27: word = "smith"; hint = "帶刀侍衛"; break; case 28: word = "davis"; hint = "濃眉哥"; break; case 29: word = "doncic"; hint = "胖七七"; break; case 30: word = "gasol"; hint = "紫金王朝鬥牛士"; break; case 31: word = "westbrook"; hint = "忍者龜"; break; case 32: word = "ibaka"; hint = "nba最長"; break; case 33: word = "adams"; hint = "水行俠"; break; case 34: word = "allen"; hint = "雷槍"; break; case 35: word = "garnett"; hint = "狼王"; break; case 36: word = "anthony"; hint = "甜瓜"; break; case 37: word = "lowry"; hint = "聯盟翹屁股"; break; case 38: word = "mitchell"; hint = "蜘蛛人"; break; case 39: word = "green"; hint = "踢蛋綠"; break; case 40: word = " antetokounmpo"; hint = "希臘怪獸"; break; } textBox3.Clear(); textBox3.Text = word; Send("Q" + word); Send("H" + hint); break; case "A": string none = ""; textBox5.Clear(); textBox6.Clear(); textBox7.Clear(); int a = 0, b = 0; input = Str; textBox4.Text = input; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (input[i] == word[j]) { if (i == j) { a++; A_word += input[i]; textBox6.Text += input[i]; } else { b++; B_word += input[i]; textBox7.Text += input[i]; } } none += input[i]; } } string A_num = Convert.ToString(a); string B_num = Convert.ToString(b); textBox5.Text = A_num + "A"; textBox5.Text += B_num + "B"; Send("C" + none); Thread.Sleep(200); Send("N"+textBox5.Text); Thread.Sleep(200); Send("A" + textBox6.Text); Thread.Sleep(200); Send("B" + textBox7.Text); if (a == 5) { Send("p"); } break; } } catch (Exception) { //有錯誤時忽略,通常是客戶端無預警強制關閉程式,測試階段常發生 } } } //關閉視窗時 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Application.ExitThread(); //關閉所有執行緒 } private void button2_Click(object sender, EventArgs e) { BroadcastMessage(textBox8.Text, 2021); textBox8.Text = ""; } private static void BroadcastMessage(string message, int port) { BroadcastMessage(Encoding.Default.GetBytes(message), port); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void label5_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private static void BroadcastMessage(byte[] message, int port) { using (var sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) { sock.EnableBroadcast = true; sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true); var iep = new IPEndPoint(IPAddress.Broadcast, port); sock.SendTo(message, iep); } } private void Send(string Str) { byte[] B = Encoding.Default.GetBytes(Str);//翻譯字串Str為Byte陣列B foreach (Socket s in HT.Values) s.Send(B, 0, B.Length, SocketFlags.None); //使用連線物件傳送資料 } } }

Client端

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; //匯入網路通訊協定相關函數 using System.Net.Sockets; //匯入網路插座功能函數 using System.Threading; //匯入多執行緒功能函數 using System.Collections; //匯入集合物件 using System.Media; using WMPLib; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); System.Media.SoundPlayer sp = new System.Media.SoundPlayer(); System.Media.SoundPlayer sp2 = new System.Media.SoundPlayer(); bool p2 = false; int count=1; string remember = "";//A string remember2 = "";//B string remember3 = "";//沒有 string title = ""; string sum = ""; string hint = ""; Socket T; //通訊物件 Thread TH; string User; //使用者 //登入伺服器 private void button1_Click(object sender, EventArgs e) { string IP = textBox1.Text; //伺服器IP int Port = int.Parse(textBox2.Text); //伺服器Port IPEndPoint EP = new IPEndPoint(IPAddress.Parse(IP), Port); //伺服器的連線端點資訊 //建立可以雙向通訊的TCP連線 T = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); User = textBox3.Text; //使用者名稱 try { CheckForIllegalCrossThreadCalls = false; T.Connect(EP); //連上伺服器的端點EP(類似撥號給電話總機) Send("0" + User); //連線後隨即傳送自己的名稱給伺服器 string sum = Convert.ToString(count); textBox8.Text = sum; TH = new Thread(Listen); TH.IsBackground = true; TH.Start(); } catch (Exception) { MessageBox.Show("無法連上伺服器!"); //連線失敗時顯示訊息 return; } button1.Enabled = false; //讓連線按鍵失效,避免重複連線 } //傳送訊息給 Server (Send Message to the Server) private void Send(string Str) { byte[] B = Encoding.Default.GetBytes(Str);//翻譯字串Str為Byte陣列B T.Send(B, 0, B.Length, SocketFlags.None); //使用連線物件傳送資料 } //關閉視窗代表離線登出 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (button1.Enabled == false) { Send("9" + User); //傳送自己的離線訊息給伺服器 T.Close(); //關閉網路通訊器T } } private void Listen() { EndPoint ServerEP = (EndPoint)T.RemoteEndPoint; byte[] B = new byte[1023]; int inLen = 0; string MSG; string St; string Str; while(true) { try { inLen = T.ReceiveFrom(B, ref ServerEP); } catch(Exception) { Send("9" + User); //傳送自己的離線訊息給伺服器 T.Close(); MessageBox.Show("伺服器斷線"); } MSG = Encoding.Default.GetString(B, 0, inLen); St = MSG.Substring(0, 1); Str = MSG.Substring(1); switch(St) { case "Q": title = Str; break; case "H": hint = Str; textBox5.Text = hint; break; case "N": string p2_a; textBox10.Text = ""; textBox10.Text = Str; p2_a = Str.Substring(0, 1); if (p2_a != "5" && p2 == true) { button4.Visible = true; pictureBox2.Location = new Point(336, 400); sp2.Play(); } break; case "A": textBox7.Text = ""; textBox7.Text = Str; remember = Str; for (int i = 0; i < remember.Length; i++) { if (remember[i] == 'a') { label10.BackColor = Color.YellowGreen; } else if (remember[i] == 'b') { label17.BackColor = Color.YellowGreen; } else if (remember[i] == 'c') { label16.BackColor = Color.YellowGreen; } else if (remember[i] == 'd') { label15.BackColor = Color.YellowGreen; } else if (remember[i] == 'e') { label14.BackColor = Color.YellowGreen; } else if (remember[i] == 'f') { label13.BackColor = Color.YellowGreen; } else if (remember[i] == 'g') { label12.BackColor = Color.YellowGreen; } else if (remember[i] == 'h') { label11.BackColor = Color.YellowGreen; } else if (remember[i] == 'i') { label18.BackColor = Color.YellowGreen; } else if (remember[i] == 'j') { label27.BackColor = Color.YellowGreen; } else if (remember[i] == 'k') { label20.BackColor = Color.YellowGreen; } else if (remember[i] == 'l') { label21.BackColor = Color.YellowGreen; } else if (remember[i] == 'm') { label22.BackColor = Color.YellowGreen; } else if (remember[i] == 'n') { label23.BackColor = Color.YellowGreen; } else if (remember[i] == 'o') { label24.BackColor = Color.YellowGreen; } else if (remember[i] == 'p') { label25.BackColor = Color.YellowGreen; } else if (remember[i] == 'q') { label26.BackColor = Color.YellowGreen; } else if (remember[i] == 'r') { label19.BackColor = Color.YellowGreen; } else if (remember[i] == 's') { label36.BackColor = Color.YellowGreen; } else if (remember[i] == 't') { label29.BackColor = Color.YellowGreen; } else if (remember[i] == 'u') { label30.BackColor = Color.YellowGreen; } else if (remember[i] == 'v') { label31.BackColor = Color.YellowGreen; } else if (remember[i] == 'w') { label32.BackColor = Color.YellowGreen; } else if (remember[i] == 'x') { label33.BackColor = Color.YellowGreen; } else if (remember[i] == 'y') { label34.BackColor = Color.YellowGreen; } else if (remember[i] == 'z') { label35.BackColor = Color.YellowGreen; } } break; case "B": textBox9.Text = ""; textBox9.Text = Str; remember2 = Str; for (int i = 0; i < remember2.Length; i++) { if (remember2[i] == 'a') { label10.BackColor = Color.Gold; } else if (remember2[i] == 'b') { label17.BackColor = Color.Gold; } else if (remember2[i] == 'c') { label16.BackColor = Color.Gold; } else if (remember2[i] == 'd') { label15.BackColor = Color.Gold; } else if (remember2[i] == 'e') { label14.BackColor = Color.Gold; }else if (remember2[i] == 'f') { label13.BackColor = Color.Gold; } else if (remember2[i] == 'g') { label12.BackColor = Color.Gold; } else if (remember2[i] == 'h') { label11.BackColor = Color.Gold; } else if (remember2[i] == 'i') { label18.BackColor = Color.Gold; } else if (remember2[i] == 'j') { label27.BackColor = Color.Gold; } else if (remember2[i] == 'k') { label20.BackColor = Color.Gold; } else if (remember2[i] == 'l') { label21.BackColor = Color.Gold; } else if (remember2[i] == 'm') { label22.BackColor = Color.Gold; } else if (remember2[i] == 'n') { label23.BackColor = Color.Gold; } else if (remember2[i] == 'o') { label24.BackColor = Color.Gold; } else if (remember2[i] == 'p') { label25.BackColor = Color.Gold; } else if (remember2[i] == 'q') { label26.BackColor = Color.Gold; } else if (remember2[i] == 'r') { label19.BackColor = Color.Gold; } else if (remember2[i] == 's') { label36.BackColor = Color.Gold; } else if (remember2[i] == 't') { label29.BackColor = Color.Gold; } else if (remember2[i] == 'u') { label30.BackColor = Color.Gold; } else if (remember2[i] == 'v') { label31.BackColor = Color.Gold; } else if (remember2[i] == 'w') { label32.BackColor = Color.Gold; } else if (remember2[i] == 'x') { label33.BackColor = Color.Gold; } else if (remember2[i] == 'y') { label34.BackColor = Color.Gold; } else if (remember2[i] == 'z') { label35.BackColor = Color.Gold; } } break; case "p": Pass(); break; case "C": remember3 = Str; for(int i = 0; i < remember3.Length; i++) { if (remember3[i] == 'a') { label10.BackColor = Color.DimGray; }else if(remember3[i] == 'b') { label17.BackColor = Color.DimGray; }else if (remember3[i] == 'c') { label16.BackColor = Color.DimGray; } else if (remember3[i] == 'd') { label15.BackColor = Color.DimGray; } else if (remember3[i] == 'e') { label14.BackColor = Color.DimGray; } else if (remember3[i] == 'f') { label13.BackColor = Color.DimGray; } else if (remember3[i] == 'g') { label12.BackColor = Color.DimGray; } else if (remember3[i] == 'h') { label11.BackColor = Color.DimGray; } else if (remember3[i] == 'i') { label18.BackColor = Color.DimGray; } else if (remember3[i] == 'j') { label27.BackColor = Color.DimGray; } else if (remember3[i] == 'k') { label20.BackColor = Color.DimGray; } else if (remember3[i] == 'l') { label21.BackColor = Color.DimGray; } else if (remember3[i] == 'm') { label22.BackColor = Color.DimGray; } else if (remember3[i] == 'n') { label23.BackColor = Color.DimGray; } else if (remember3[i] == 'o') { label24.BackColor = Color.DimGray; } else if (remember3[i] == 'p') { label25.BackColor = Color.DimGray; } else if (remember3[i] == 'q') { label26.BackColor = Color.DimGray; } else if (remember3[i] == 'r') { label19.BackColor = Color.DimGray; } else if (remember3[i] == 's') { label36.BackColor = Color.DimGray; } else if (remember3[i] == 't') { label29.BackColor = Color.DimGray; } else if (remember3[i] == 'u') { label30.BackColor = Color.DimGray; } else if (remember3[i] == 'v') { label31.BackColor = Color.DimGray; } else if (remember3[i] == 'w') { label32.BackColor = Color.DimGray; } else if (remember3[i] == 'x') { label33.BackColor = Color.DimGray; } else if (remember3[i] == 'y') { label34.BackColor = Color.DimGray; } else if (remember3[i] == 'z') { label35.BackColor = Color.DimGray; } } break; } } } private void Pass() { sp.Play(); // 撥放 button4.Visible = true; pictureBox1.Visible = true; button2.Enabled = false; } private void Form1_Load(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); button4.Visible = false; pictureBox1.Visible = false; textBox5.Visible = false; panel1.Visible = false; wplayer.URL = "01.mp3"; wplayer.settings.playCount = 1000; wplayer.controls.play(); sp.SoundLocation = @"03.wav"; sp2.SoundLocation = @"04.wav"; } private void ReceiveBroadcastMessage(Action<EndPoint, string> receivedAction, int port) { ReceiveBroadcastMessage((ep, data) => { var stringData = Encoding.Default.GetString(data); receivedAction(ep, stringData); }, port); } private void ReceiveBroadcastMessage(Action<EndPoint, byte[]> receivedAction, int port) { using (var sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) { var ep = new IPEndPoint(IPAddress.Any, port) as EndPoint; sock.Bind(ep); while (true) { var buffer = new byte[1024]; var recv = sock.ReceiveFrom(buffer, ref ep); var data = new byte[recv]; Array.Copy(buffer, 0, data, 0, recv); receivedAction(ep, data); Thread.Sleep(500); Application.DoEvents(); } } } private void button2_Click(object sender, EventArgs e) { count++; if (count>=4) { textBox5.Visible = true; } if(count>=6) { p2 = true; button2.Enabled = false; } string sum = Convert.ToString(count); textBox8.Text = sum; if (textBox6.Text == "") return; Send("A"+textBox6.Text); if (count == 2) { textBox4.Text = textBox6.Text; }else if(count == 3) { textBox11.Text = textBox6.Text; }else if(count == 4) { textBox12.Text = textBox6.Text; }else if(count == 5) { textBox13.Text = textBox6.Text; }else if(count == 6) { textBox14.Text = textBox6.Text; } textBox6.Text = ""; } private void button4_Click(object sender, EventArgs e) { Send("R"); count = 1; sum = ""; sum=Convert.ToString(count); textBox8.Text = sum; button4.Visible = false; button2.Enabled = true; ; pictureBox1.Visible = false; textBox5.Visible = false; textBox5.Text = ""; textBox10.Text = ""; textBox7.Text = ""; textBox9.Text = ""; textBox4.Text = ""; textBox11.Text = ""; textBox12.Text = ""; textBox13.Text = ""; textBox14.Text = ""; p2 = false; pictureBox2.Location = new Point(1314, 649); label10.BackColor = Color.DarkGray; label17.BackColor = Color.DarkGray; label16.BackColor = Color.DarkGray; label15.BackColor = Color.DarkGray; label14.BackColor = Color.DarkGray; label13.BackColor = Color.DarkGray; label12.BackColor = Color.DarkGray; label11.BackColor = Color.DarkGray; label18.BackColor = Color.DarkGray; label27.BackColor = Color.DarkGray; label20.BackColor = Color.DarkGray; label21.BackColor = Color.DarkGray; label22.BackColor = Color.DarkGray; label23.BackColor = Color.DarkGray; label24.BackColor = Color.DarkGray; label25.BackColor = Color.DarkGray; label26.BackColor = Color.DarkGray; label19.BackColor = Color.DarkGray; label36.BackColor = Color.DarkGray; label29.BackColor = Color.DarkGray; label30.BackColor = Color.DarkGray; label31.BackColor = Color.DarkGray; label32.BackColor = Color.DarkGray; label33.BackColor = Color.DarkGray; label34.BackColor = Color.DarkGray; label35.BackColor = Color.DarkGray; } private void button3_Click(object sender, EventArgs e) { panel1.Visible = true; pictureBox9.Visible = false; pictureBox7.Visible = false; pictureBox6.Visible = false; pictureBox8.Visible = false; pictureBox4.Visible = true; pictureBox3.Visible = false; label4.Visible = false; label5.Visible = false; label37.Visible = false; label38.Visible = false; label39.Visible = false; label40.Visible = false; label41.Visible = false; label6.Visible = false; label7.Visible = false; label9.Visible = false; label28.Visible = false; textBox5.Visible = false; textBox6.Visible = false; textBox11.Visible = false; textBox12.Visible = false; textBox13.Visible = false; textBox14.Visible = false; textBox4.Visible = false; textBox7.Visible = false; textBox9.Visible = false; textBox10.Visible = false; label10.Visible = false; label17.Visible = false; label16.Visible = false; label15.Visible = false; label14.Visible = false; label13.Visible = false; label12.Visible = false; label11.Visible = false; label18.Visible = false; label27.Visible = false; label20.Visible = false; label21.Visible = false; label22.Visible = false; label23.Visible = false; label24.Visible = false; label25.Visible = false; label26.Visible = false; label19.Visible = false; label36.Visible = false; label29.Visible = false; label30.Visible = false; label31.Visible = false; label32.Visible = false; label33.Visible = false; label34.Visible = false; label35.Visible = false; button2.Visible = false; listBox1.Visible = false; } private void pictureBox4_Click(object sender, EventArgs e) { panel1.Visible = false; pictureBox4.Visible = false; pictureBox3.Visible = true; pictureBox7.Visible = true; pictureBox6.Visible = true; pictureBox8.Visible = true; pictureBox9.Visible = true; listBox1.Visible = true; label4.Visible = true; label5.Visible = true; label37.Visible = true; label38.Visible = true; label39.Visible = true; label40.Visible = true; label41.Visible = true; label6.Visible = true; label7.Visible = true; label9.Visible = true; label28.Visible = true; if (count >= 4) { textBox5.Visible = true; } textBox6.Visible = true; textBox11.Visible = true; textBox12.Visible = true; textBox13.Visible = true; textBox14.Visible = true; textBox4.Visible = true; textBox7.Visible = true; textBox9.Visible = true; textBox10.Visible = true; label10.Visible = true; label17.Visible = true; label16.Visible = true; label15.Visible = true; label14.Visible = true; label13.Visible = true; label12.Visible = true; label11.Visible = true; label18.Visible = true; label27.Visible = true; label20.Visible = true; label21.Visible = true; label22.Visible = true; label23.Visible = true; label24.Visible = true; label25.Visible = true; label26.Visible = true; label19.Visible = true; label36.Visible = true; label29.Visible = true; label30.Visible = true; label31.Visible = true; label32.Visible = true; label33.Visible = true; label34.Visible = true; label35.Visible = true; button2.Visible = true; } private void backgroundWorker1_DoWork_1(object sender, DoWorkEventArgs e) { ReceiveBroadcastMessage((EndPoint ep, string data) => { this.Invoke((MethodInvoker)delegate () { listBox1.Items.Add(string.Format("received: {0} from: {1}", data, ep.ToString())); }); }, 2021); } } }