private void Connect(string IP, string Port, string Name) { Control.CheckForIllegalCrossThreadCalls = false; //忽略跨執行緒操作的錯誤 try { IPEndPoint EP = new IPEndPoint(IPAddress.Parse(IP), int.Parse(Port));//建立伺服器端點資訊 T = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); T.Connect(EP); Th = new Thread(Listen) { IsBackground = true }; Th.Start();//開始監聽 textBox1.AppendText("(系統) : 已連線伺服器! \r\n"); Send("L" + Name); } catch { fLogin login = new fLogin() { Netip = Netip, Netport = Netport, Netname = Netname }; login.Show(); textBox1.AppendText("(系統) : " + Name + " 無法連上伺服器! \r\n"); this.Close(); } }
private void Exit_btu_Click(object sender, EventArgs e) { try { fLogin login = new fLogin() { Netip = Netip, Netport = Netport, Netname = Netname }; login.Show(); Send("9" + Netname); //傳送自己的離線訊息給伺服器 if (T != null) { T.Close(); //關閉網路通訊器 } this.Close(); } catch { } }