/// <summary> /// 刷新接受列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tmShowRefreshAcceptList_Tick(object sender, EventArgs e) { lock (PortforwardTable) { lock (cbListHostAccept) { IPortforward[] list = new IPortforward[PortforwardTable.Keys.Count]; PortforwardTable.Keys.CopyTo(list, 0); foreach (IPortforward p in list) { if (p.IsDispose) { cbListHostAccept.Items.Remove(p.FromAddress); PortforwardTable.Remove(p); continue; } if (!cbListHostAccept.Items.Contains(p.FromAddress)) { cbListHostAccept.Items.Add(p.FromAddress); } } } } }
/// <summary> /// 服务端向客户端发送数据完成事件 /// </summary> /// <param name="sender"></param> /// <param name="data"></param> private void Negative_OnSended(IPortforward sender, byte[] data) { if (isShowPause || !isShowSended) { return; } lock (dataPackageQueue) { dataPackageQueue.Enqueue(new DataPackage(sender.FromSocket.RemoteEndPoint.ToString(), sender.ToSocket.RemoteEndPoint.ToString(), data, DataPackageType.Sended, DateTime.Now)); } }
/// <summary> /// 开始转发 /// </summary> void PortForward(object args) { try { IPortforward portforward = args as IPortforward; if (portforward == null) { return; } portforward.Run(bufferSize); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }