public void Stop() { if (_server.IsActive) { _server.Stop(); } }
/// <summary> /// 停止 /// </summary> public void StopReactor() { try { if (this.IsReactorOpen) { connectionAdapter.StopReceive(); reactor.Stop(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Helios20_Client_and_Helios14_Server_Should_ReadWrite() { IReactor server = null; IChannel client = null; try { server = _serverBootstrap.NewReactor(NodeBuilder.BuildNode().Host(IPAddress.Loopback).WithPort(0)); server.OnReceive += (data, channel) => { // echo the response back channel.Send(data); }; server.OnConnection += (address, channel) => { channel.BeginReceive(); }; server.Start(); client = _clientBootstrap.ConnectAsync(server.LocalEndpoint).Result; Task.Delay(TimeSpan.FromMilliseconds(500)).Wait(); // because Helios 1.4 is stupid var writes = Enumerable.Range(0, ReadCount) .Select(x => ThreadLocalRandom.Current.Next()) .OrderBy(y => y) .ToList(); foreach (var write in writes) { client.WriteAndFlushAsync(Unpooled.Buffer(4).WriteInt(write)); } _resetEvent.Wait(); var decodedReceive = _received.Select(y => y.ReadInt()).OrderBy(x => x).ToList(); Assert.True(decodedReceive.SequenceEqual(writes)); } finally { client?.CloseAsync().Wait(); server?.Stop(); _clientGroup.ShutdownGracefullyAsync().Wait(); } }
public void Dispose() { _reactor.Stop(); }