private void ConnectServer() { try { SckSPort = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); SckSPort.Connect(new IPEndPoint(IPAddress.Parse(RmIp), SPort)); // RmIp和SPort分別為string和int型態, 前者為Server端的IP, 後者為Server端的Port if (!SckSPort.Connected) { tObj.OnError(); logger.Error("Connect to " + RmIp + ":" + SPort + " Fail!"); return; } else { logger.Info("Connected! " + RmIp + ":" + SPort); tObj.OnConnected(); } // 同 Server 端一樣要另外開一個執行緒用來等待接收來自 Server 端傳來的資料, 與Server概念同 Thread SckSReceiveTd = new Thread(SckSReceiveProc); SckSReceiveTd.IsBackground = true; SckSReceiveTd.Start(); } catch (Exception e) { logger.Error("(ConnectServer " + Desc + " " + RmIp + ":" + SPort + ")" + e.Message + "\n" + e.StackTrace); tObj.OnError(); } }