private void ListenerStart() { IPAddress ip = IPAddress.Parse("127.0.0.1"); const int port = 60000; tcpListener = new TcpListener(ip, port); tcpListener.Start(); Debug.WriteLine("启动服务器成功,等待链接..."); showMsgRichTextBox.Text = "启动服务器成功,等待链接..."; while (true) { try { TcpClient tcpClient = tcpListener.AcceptTcpClient(); Debug.WriteLine("OicqService Start"); OicqServicePoint servicePoint = new OicqServicePoint(); servicePoint.TcpClient = tcpClient; servicePoint.Transmited += servicePoint_Transmited; servicePoint.Start(); servicePoints.Add(servicePoint); } catch (ThreadAbortException) { tcpListener.Stop(); break; } catch (Exception ex) { Debug.WriteLine(ex.Message); break; } } }
private void servicePoint_Transmited(object sender, string dcode, string msg) { foreach (OicqServicePoint item in servicePoints) { if (item.code == dcode) { try { OicqServicePoint oisp = (OicqServicePoint)sender; item.SendMessage(oisp.code, msg); return; } catch { //item.SendFailMessage("Send Fail !"); } } } OicqServicePoint failSp = (OicqServicePoint)sender; Debug.WriteLine(failSp.code + "..."); failSp.SendFailMessage("send fail" + "/" + msg); }