public void Run() { ChannelReceiver receiver = new ChannelReceiver(this.contextParameters, this.channelBinding); ChannelSender sender = new ChannelSender(this.contextParameters, this.channelBinding); sender.Run(SendToUri); receiver.Run(ListenUri); // Validate results. bool comparisonOutcome = Util.CompareResults(this.expectedResults, receiver.Results); Assert.AreEqual(true, comparisonOutcome, "The actual results were not as expected"); Assert.AreEqual(0, Util.GetMessageCountFromQueue(ListenUri), "The actual message count wasn't as expected."); }
private void ReceiveCallback(IAsyncResult ar) { // end the receive Socket sock = (Socket)ar.AsyncState; try { SocketFlags sf = SocketFlags.None; IPPacketInformation packetInfo; int bytes = sock.EndReceiveMessageFrom(ar, ref sf, ref receiveEndpoint, out packetInfo); lock (lockobj) { IPEndPoint ep = receiveEndpoint as IPEndPoint; if (ep != null) { ChannelSender sender = null; for (int i = 0; i < senders.Count; i++) { if (senders[i].Endpoint.Equals(ep)) { sender = senders[i]; break; } } if (sender == null) { sender = new ChannelSender(ep); senders.Add(sender); } // parse out the version, serialization type, sequence number int seqNumber = int.MinValue; switch (channelType) { case ChannelType.UDPChannel: ParseUDPChannelPacket(buf, bytes, ref seqNumber); break; } sender.OnPacketReceived(seqNumber); packetCount++; byteCount += bytes; } } receiveEndpoint = new IPEndPoint(IPAddress.Any, 0); sock.BeginReceiveMessageFrom(buf, 0, buf.Length, SocketFlags.None, ref receiveEndpoint, ReceiveCallback, sock); } catch (Exception) { } }