private string CountProtocols(PeerToPeer s2d, PeerToPeer d2s) { int totalProtocolNumInPeer = 0; int s2dTCP = 0, s2dUDP = 0, d2sTCP = 0, d2sUDP = 0, s2dTCPSize = 0, s2dUDPSize = 0, d2sTCPSize = 0, d2sUDPSize = 0; List <IPProtocolType> list = new List <IPProtocolType>(); foreach (IPProtocolType type in s2d.protocolPkInfos.Keys) { if (!list.Contains(type)) { list.Add(type); totalProtocolNumInPeer++; } } foreach (IPProtocolType type in d2s.protocolPkInfos.Keys) { if (!list.Contains(type)) { list.Add(type); totalProtocolNumInPeer++; } } if (list.Count >= 2) { } if (s2d.protocolPkInfos.ContainsKey(IPProtocolType.TCP)) { s2dTCP = s2d.protocolPkInfos[IPProtocolType.TCP][0]; s2dTCPSize = s2d.protocolPkInfos[IPProtocolType.TCP][1]; } if (s2d.protocolPkInfos.ContainsKey(IPProtocolType.UDP)) { s2dUDP = s2d.protocolPkInfos[IPProtocolType.UDP][0]; s2dUDPSize = s2d.protocolPkInfos[IPProtocolType.UDP][1]; } if (d2s.protocolPkInfos.ContainsKey(IPProtocolType.TCP)) { d2sTCP = d2s.protocolPkInfos[IPProtocolType.TCP][0]; d2sTCPSize = d2s.protocolPkInfos[IPProtocolType.TCP][1]; } if (d2s.protocolPkInfos.ContainsKey(IPProtocolType.UDP)) { d2sUDP = d2s.protocolPkInfos[IPProtocolType.UDP][0]; d2sUDPSize = d2s.protocolPkInfos[IPProtocolType.UDP][1]; } string protocolText = string.Format("协议:{0}; TCP:{1}个{2}字节; UDP:{3}个{4}字节", totalProtocolNumInPeer, s2dTCP + d2sTCP, s2dTCPSize + d2sTCPSize, s2dUDP + d2sUDP, s2dUDPSize + d2sUDPSize); return(protocolText); }
public WindowShowLineInfo(Line l, PeerMapShow _uc) { InitializeComponent(); uc = _uc; line = l; timer = new DispatcherTimer(); timer.Interval = new System.TimeSpan(0, 0, 1); timer.Tick += new EventHandler(timer_Tick); timer.Start(); srcIP = ((PeerMapShow.LineSrcDst)line.Tag)._srcip; dstIP = ((PeerMapShow.LineSrcDst)line.Tag)._dstip; tbSrcIP.Text = srcIP.ToString(); tbDstIP.Text = dstIP.ToString(); //srcPeerInfo = uc.ipAndPeerInfos[srcIP]; //dstPeerInfo = uc.ipAndPeerInfos[dstIP]; p2pS2D = uc.ipAndPeerInfos[srcIP].peerToPeers[dstIP]; p2pD2S = uc.ipAndPeerInfos[dstIP].peerToPeers[srcIP]; tbIP.Text = srcIP.ToString() + " - " + dstIP.ToString(); sentPacketsNum = p2pS2D.totalSendPkNum; oldSentBytesNum = sentBytesNum = p2pS2D.totalSendPkSize; sentPercentNum = (double)p2pS2D.totalSendPkSize * 100 / (double)uc.totalPkSize; rcvPacketsNum = p2pD2S.totalSendPkNum; oldRcvBytesNum = rcvBytesNum = p2pD2S.totalSendPkSize; rcvPercentNum = (double)p2pD2S.totalSendPkSize * 100 / (double)uc.totalPkSize; sentPackets.Text = sentPacketsNum.ToString(); sentBytes.Text = sentBytesNum.ToString(); sentSpeed.Text = ""; sentPercent.Text = sentPercentNum.ToString("0.000"); rcvPackets.Text = rcvPacketsNum.ToString(); rcvBytes.Text = rcvBytesNum.ToString(); rcvSpeed.Text = ""; rcvPercent.Text = rcvPercentNum.ToString("0.000"); sumPackets.Text = (sentPacketsNum + rcvPacketsNum).ToString(); sumBytes.Text = (sentBytesNum + rcvBytesNum).ToString(); sumSpeed.Text = ""; sumPercent.Text = (sentPercentNum + rcvPercentNum).ToString("0.000"); protocols.Text = CountProtocols(p2pS2D, p2pD2S); }