Rhino.Queues.Protocol.Receiver.Start C# (CSharp) Méthode

Start() public méthode

public Start ( ) : void
Résultat void
        public void Start()
        {
            logger.DebugFormat("Starting to listen on {0}", endpointToListenTo);
            while (endpointToListenTo.Port < 65536)
            {
                try
                {
                    TryStart(endpointToListenTo);
                    logger.DebugFormat("Now listen on {0}", endpointToListenTo);
                    return;
                }
                catch(SocketException ex)
                {
                    if (enableEndpointPortAutoSelection &&
                        ex.Message == "Only one usage of each socket address (protocol/network address/port) is normally permitted")
                    {
                        endpointToListenTo.Port = SelectAvailablePort();
                        logger.DebugFormat("Port in use, new enpoint selected: {0}", endpointToListenTo);
                    }
                    else
                        throw;
                }
            }
        }

Usage Example

        public void CanHandleClientSendingBadLengthOfData()
        {
            using (var reciever = new Receiver(endpointToListenTo, messages => null))
            {
                reciever.CompletedRecievingMessages += () => wait.Set();
                reciever.Start();

                using (var client = new TcpClient())
                {
                    client.Connect(endpointToListenTo);
                    var stream = client.GetStream();
                    stream.Write(BitConverter.GetBytes(16), 0, 4);
                    stream.Write(BitConverter.GetBytes(5), 0, 4);
                }

                wait.WaitOne();

                var warn = (from e in appender.GetEvents()
                            where e.Level == Level.Warn &&
                                  e.RenderedMessage.StartsWith("Unable to read message data")
                            select e).FirstOrDefault();

                Assert.NotNull(warn);
            }
        }
All Usage Examples Of Rhino.Queues.Protocol.Receiver::Start