Stop() public method

public Stop ( ) : void
return void
Example #1
0
        /// <summary>
        /// Changes the port that the server is listening on to the given port.
        /// </summary>
        /// <param name="newPort">The given port.</param>
        public static void ChangePort(int newPort)
        {
            lock (_syncRoot)
            {
                if (_socketServer == null)
                {
                    return;                                        //not initialized
                }
                //if there was not port change return.
                if (_socketServer.PortNumber == newPort)
                {
                    return;
                }

                try
                {
                    SocketServer oldServer       = _socketServer;
                    bool         useAsyncHandler = _socketServer.MessageHandler is SocketServerAsyncMessageHandler;
                    bool         whitelistOnly   = _socketServer.WhitelistOnly;
                    _setupNewSocketServer(_myRelayNode, oldServer.InstanceName,
                                          newPort, useAsyncHandler, _connectionWhitelist, whitelistOnly);
                    oldServer.Stop();
                }
                catch (Exception ex)
                {
                    if (log.IsErrorEnabled)
                    {
                        log.Error("Error changing listen port: {0}", ex);
                    }
                }
            }
        }
Example #2
0
        public async Task TestSessionCount()
        {
            var server = new SocketServer();

            var dic = new Dictionary <string, string>
            {
                { "name", "TestServer" },
                { "listeners:0:ip", "Any" },
                { "listeners:0:port", "4040" }
            };

            var builder = new ConfigurationBuilder().AddInMemoryCollection(dic);
            var config  = builder.Build();

            Assert.True(server.Configure(config));
            Assert.Equal("TestServer", server.Name);

            Assert.True(server.Start());
            Assert.Equal(0, server.SessionCount);

            var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            await client.ConnectAsync(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4040));

            await Task.Delay(1);

            Assert.Equal(1, server.SessionCount);

            server.Stop();
        }
Example #3
0
        static void Main(string[] args)
        {
            encoding = Encoding.ASCII;
            SocketServer server;

            server = new SocketServer(new IPEndPoint(IPAddress.Loopback, 0));

            server.Connected.Subscribe(c =>
            {
                serverClient = new FramedClient(c);

                // When received is called, bs will contain no more and no less
                // data than whole packet as sent from client.
                serverClient.Received.Subscribe(bs =>
                {
                    var msg = encoding.GetString(bs.Array, bs.Offset, bs.Count);
                    msg     = "Hello, " + msg + "!";
                    serverClient.SendPacket(encoding.GetBytes(msg));
                });
            });

            server.Start();
            HandleClient(server.BindEndPoint.Port);

            Console.WriteLine("Press any key to stop...");
            Console.ReadKey();

            server.Stop();
            client.Close();
            serverClient.Close();
        }
Example #4
0
 /// <summary>
 /// 析构函数
 /// </summary>
 public void Close()
 {
     client.Close();
     server.Stop();
     threadOut.Stop();
     threadIn.Stop();
 }
        private static void CheckReconnection(StatsdConfig config)
        {
            SocketServer server = null;

            try
            {
                server = new SocketServer(config);
                using (var service = new DogStatsdService())
                {
                    service.Configure(config);
                    service.Increment("test1");
                    Assert.AreEqual("test1:1|c", server.Stop().Single());
                    server.Dispose();

                    // Send a metric when the server is not running.
                    service.Increment("test2");
                    Task.Delay(TimeSpan.FromMilliseconds(500)).Wait();

                    // Restart the server
                    server = new SocketServer(config, removeUDSFileBeforeStarting: true);
                    service.Increment("test3");
                    service.Dispose();
                    Assert.AreEqual("test3:1|c", server.Stop().Last());
                }
            }
            finally
            {
                server?.Dispose();
            }
        }
Example #6
0
        private void btnInit_Click(object sender, EventArgs e)
        {
            if (txtIp.Text.Trim() == string.Empty || txtPort.Text.Trim() == string.Empty)
            {
                txtLog.AppendText("Ip or port is enpty ...\r\n");
            }
            else
            {
                if (btnInit.Text == "Start")
                {
                    btnInit.Text   = "Stop";
                    txtIp.Enabled  = txtPort.Enabled = false;
                    txtMsg.Enabled = btnAllSend.Enabled = lvBroker.Enabled = true;


                    _socketServer.Start(txtIp.Text, int.Parse(txtPort.Text), 200);
                }
                else
                {
                    btnInit.Text   = "Start";
                    txtIp.Enabled  = txtPort.Enabled = true;
                    txtMsg.Enabled = btnAllSend.Enabled = lvBroker.Enabled = btnOnlySend.Enabled = false;

                    _socketServer.Stop();
                }
            }
        }
 public void Stop()
 {
     _socketServer.Stop();
     _serviceDiscovery.Stop();
     _trackStateMonitor.Stop();
     _playerStateMonitor.Stop();
     _libraryScanner.Stop();
 }
Example #8
0
 // Click event of "Pause" button
 public void OnPauseButtonClicked()
 {
     if (server == null)
     {
         return;
     }
     server.Stop();
 }
Example #9
0
 public void Stop()
 {
     _socketServer.Stop();
     _ahemClientManager.Dispose();
     _storageSaver.Stop();
     Running = false;
     OnMessageRecived?.Invoke("Server stopped");
 }
        // AVRO-625 [Test]
        public void CancelPendingRequestsOnTransceiverClose()
        {
            // Start up a second server so that closing the server doesn't
            // interfere with the other unit tests:
            var blockingSimpleImpl = new BlockingSimpleImpl();

            var responder = new SpecificResponder <Simple>(blockingSimpleImpl);
            var server2   = new SocketServer("localhost", 0, responder);

            server2.Start();

            try
            {
                int serverPort = server2.Port;

                var transceiver2 = new SocketTransceiver("localhost", serverPort);

                var addFuture = new CallFuture <int>();
                try
                {
                    var simpleClient2 = SpecificRequestor.CreateClient <SimpleCallback>(transceiver2);

                    // The first call has to block for the handshake:
                    Assert.AreEqual(3, simpleClient2.add(1, 2));

                    // Now acquire the semaphore so that the server will block:
                    blockingSimpleImpl.acquireRunPermit();
                    simpleClient2.add(1, 2, addFuture);
                }
                finally
                {
                    // When the transceiver is closed, the CallFuture should get
                    // an IOException
                    transceiver2.Close();
                }
                bool ioeThrown = false;
                try
                {
                    addFuture.WaitForResult(2000);
                }
                catch (Exception)
                {
                }
                //catch (ExecutionException e) {
                //  ioeThrown = e.getCause() instanceof IOException;
                //  Assert.assertTrue(e.getCause() instanceof IOException);
                //} catch (Exception e) {
                //  e.printStackTrace();
                //  Assert.fail("Unexpected Exception: " + e.toString());
                //}
                Assert.IsTrue(ioeThrown, "Expected IOException to be thrown");
            }
            finally
            {
                blockingSimpleImpl.releaseRunPermit();
                server2.Stop();
            }
        }
Example #11
0
    private void OnLoginEnded(string obj)
    {
        Debug.LogWarning(obj);
        int splitPosition = obj.IndexOf(' ');

        LoginCallback(obj.Substring(0, splitPosition) == "SUCCESS", obj.Substring(splitPosition + 1));
        socketServer.Stop();
        socketServer = null;
    }
Example #12
0
 public void Dispose()
 {
     bCloseSocket = true;
     if (_server != null)
     {
         _server.Stop();
         _server.Dispose();
     }
 }
Example #13
0
        static void Main(string[] args)
        {
            var server = new SocketServer();

            server.Start();
            if (Console.ReadLine() == "quit")
            {
                server.Stop();
            }
        }
Example #14
0
 /// <summary>
 /// Stops this virtualized service. When used as Virtual Server, it will release all services descriptions and network resources like TCP Port.
 /// When the service is stopped, the virtual server will not reply anymore.
 /// </summary>
 public override void Stop()
 {
     if (sersock != null)
     {
         sersock.Stop();
         sersock = null;
     }
     IsRunning = false;
     EmiService.Stop();
 }
Example #15
0
        public void Close()
        {
            foreach (var session in SocketServer.GetAllSessions())
            {
                session.CloseWithHandshake("Server is stopping");
            }
            SocketServer.Stop();

            log.Info("WebSocket server was closed");
        }
Example #16
0
        private void btnStop_Click(object sender, EventArgs e)
        {
            if (server?.Running == true)
            {
                server.Stop();
            }

            btnStart.Enabled = server.Running;
            btnStop.Enabled  = !server.Running;
        }
Example #17
0
        public static void StopAndAssertStopped(this SocketServer server)
        {
            var stopped = new ManualResetEventSlim(false);

            server.Stopped.Subscribe(_ =>
            {
                stopped.Set();
            });
            server.Stop();
            stopped.AssertWaitFor(3000);
        }
Example #18
0
 /// <summary>
 /// Stops the server from listening on a port.
 /// </summary>
 public static void Shutdown()
 {
     lock (_syncRoot)
     {
         if (_socketServer != null && _socketServer.IsRunning)
         {
             _socketServer.Stop();
             _socketServer = null;
         }
     }
 }
Example #19
0
        public async Task Stop()
        {
            if (!_isRunning)
            {
                return;
            }

            _socketServer.OnClientMessage -= HandleClientCommand;
            await _socketServer.Stop();

            _isRunning = false;
        }
Example #20
0
        public void Stop()
        {
            // Setup
            Mock <ISocket> mockSocket   = new Mock <ISocket>();
            SocketServer   socketServer = new SocketServer();

            socketServer.Start(mockSocket.Object, 6128);

            // Act
            socketServer.Stop();

            // Verify
            mockSocket.Verify(s => s.Close(), Times.Once());
        }
Example #21
0
        public void Stop()
        {
            if (!IsRunning)
            {
                return;
            }

            //close All client

            MonitorPool.Singleton.Exit();
            IsRunning = false;
            ServiceServer.Stop();
            Server.Stop();
        }
Example #22
0
        public static void Main1(String[] args)
        {
            Common.SocketIsDebug = true;
            IPAddress    addr   = IPAddress.Parse("192.168.32.1");
            SocketServer server = new SocketServer(addr, 8888);

            server.OnClientConnected    += server_OnClientConnected;
            server.OnServerRecevied     += server_OnServerRecevied;
            server.OnClientThreadStop   += server_OnClientThreadStop;
            server.OnClientDisConnected += server_OnClientDisConnected;
            server.Start();
            Console.Read();
            server.Stop();
        }
Example #23
0
        public void Stop()
        {
            server.Stop();
            executor.Enqueue(() =>
            {
                isStopped = true;
                pingTimer.Change(Timeout.Infinite, Timeout.Infinite);

                foreach (var client in clients)
                {
                    client.Close();
                }
            });
        }
Example #24
0
 protected void Application_End(object sender, EventArgs e)
 {
     Logger.LogInformation("Stopping Game Server");
     if (_policyServer != null)
     {
         _policyServer.Stop();
     }
     if (_socketServer != null)
     {
         _socketServer.Stop();
     }
     Game.Server.Stop();
     _serverThread.Abort();
 }
        public void ClientReconnectAfterServerRestart()
        {
            // Start up a second server so that closing the server doesn't
            // interfere with the other unit tests:
            SimpleImpl simpleImpl = new BlockingSimpleImpl();

            var responder = new SpecificResponder <Simple>(simpleImpl);
            var server2   = new SocketServer("localhost", 0, responder);

            server2.Start();

            try
            {
                int serverPort = server2.Port;

                // Initialize a client, and establish a connection to the server:
                Transceiver transceiver2 = new SocketTransceiver("localhost", serverPort);

                var simpleClient2 =
                    SpecificRequestor.CreateClient <SimpleCallback>(transceiver2);

                Assert.AreEqual(3, simpleClient2.add(1, 2));

                // Restart the server:
                server2.Stop();
                try
                {
                    simpleClient2.add(2, -1);
                    Assert.Fail("Client should not be able to invoke RPCs because server is no longer running");
                }
                catch (Exception)
                {
                    // Expected since server is no longer running
                }

                Thread.Sleep(2000);
                server2 = new SocketServer("localhost", serverPort, new SpecificResponder <Simple>(new SimpleImpl()));

                server2.Start();

                // Invoke an RPC using the same client, which should reestablish the
                // connection to the server:
                Assert.AreEqual(3, simpleClient2.add(1, 2));
            }
            finally
            {
                server2.Stop();
            }
        }
        static void Main(string[] args)
        {
            //TcpServer = new SocketServer(NetworkType.Tcp, IPAddress.Loopback, 5400);
            //TcpServer.OnConnected += UdpServer_OnConnected;
            //TcpServer.OnDisconnected += UdpServer_OnDisconnected;
            //TcpServer.OnError += UdpServer_OnError;
            //TcpServer.OnReceived += UdpServer_OnReceived;
            //TcpServer.OnStart += UdpServer_OnStart;
            //TcpServer.OnStop += UdpServer_OnStop;
            //Console.WriteLine("Starting tcp server");
            //TcpServer.Start();
            //SocketClient TcpClient = new SocketClient(NetworkType.Tcp);
            //TcpClient.OnConnected += TcpClient_OnConnected;
            //TcpClient.OnDisconnected += TcpClient_OnDisconnect;
            //TcpClient.OnReceived += TcpClient_OnReceived;
            //TcpClient.Connect(IPAddress.Loopback, 5400);
            //TcpClient.Disconnect();
            //TcpServer.Stop();

            UdpServer                 = new SocketServer(NetworkType.Udp, IPAddress.Loopback, 5401);
            UdpServer.OnConnected    += UdpServer_OnConnected;
            UdpServer.OnDisconnected += UdpServer_OnDisconnected;
            UdpServer.OnError        += UdpServer_OnError;
            UdpServer.OnReceived     += UdpServer_OnReceived;
            UdpServer.OnStart        += UdpServer_OnStart;
            UdpServer.OnStop         += UdpServer_OnStop;
            Console.WriteLine("Starting udp server");
            UdpServer.Start();
            SocketClient UdpClient = new SocketClient(NetworkType.Udp);

            UdpClient.OnConnected    += TcpClient_OnConnected;
            UdpClient.OnDisconnected += TcpClient_OnDisconnect;
            UdpClient.OnReceived     += TcpClient_OnReceived;
            UdpClient.Connect(IPAddress.Loopback, 5401);
            Console.ReadKey();
            for (int i = 0; i < 100000; ++i)
            {
                UdpClient.Socket.Send(Encoding.Default.GetBytes($"Hello my dear friends {i}"));
                Thread.Sleep(1);
            }
            Console.ReadKey();
            UdpClient.Disconnect();
            Console.ReadKey();
            UdpServer.Stop();
            Console.ReadKey();
        }
Example #27
0
 private void SwitchTcpServer(object sender, RoutedEventArgs e)
 {
     if (_isServerStarted)
     {
         _isServerStarted = !_socketServer.Stop();
     }
     else
     {
         if (!TryParseIpEndPoint(out IPEndPoint endPoint))
         {
             LblMessage.Content = "错误IP地址或端口号!";
         }
         else
         {
             _isServerStarted = _socketServer.StartServer(endPoint);
         }
     }
     SwitchServerButton();
 }
Example #28
0
        static void Main(string[] args)
        {
            ushort port       = DefaultPort;
            var    serverName = DefaultServerName;

            if (args.Length > 1)
            {
                serverName = args[0];

                if (!ushort.TryParse(args[1], out port) || port == 0)
                {
                    Console.WriteLine("Port must be a number between 1 and 65535");
                    Console.Read();
                    return;
                }
            }

            IServer server = new SocketServer();

            server.OnClientConnected    += (roomId, clientId) => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Client connected. RoomId = {roomId}, ClientId = {clientId}");
            server.OnClientDisconnected += c => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Client disconnected: {c}");
            server.OnError         += exc => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Error: {exc.Message}");
            server.OnRoomCreated   += r => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Room created: {r}");
            server.OnRoomDestroyed += r => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Room destroyed: {r}");
            //server.OnMessageReceived += (roomId, clientId, text) => Console.WriteLine($"{DateTime.Now.ToLongTimeString()} Message received. RoomId = {roomId}, ClientId = {clientId}, Text = {text}");

            try
            {
                server.Run(serverName, port);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            Console.WriteLine($"Server started on {serverName}:{port}");



            Console.WriteLine("Press any key to exit");
            Console.Read();
            server.Stop();
        }
Example #29
0
        public void SendDataBetweenTwentyTcpClientsAndOneTcpServer()
        {
            var resetEvent    = new ManualResetEvent(false);
            var address       = IPAddress.Loopback;
            var port          = 55555;
            var numberClients = 20;
            var results       = new ConcurrentDictionary <IPEndPoint, Byte[]>();
            var clients       = new List <SocketClient>();
            var server        = new SocketServer(address, port);

            server.ReceivedData += (s, e) => {
                var data = results.ContainsKey(e.RemotePoint) ? results[e.RemotePoint] : new Byte[] { };
                data = data.Concat(e.ReceivedData);
                results[e.RemotePoint] = data;
            };
            server.Start();

            for (var i = 0; i < numberClients; i++)
            {
                var client = new SocketClient();
                client.Connect(address, port);
                clients.Add(client);
            }
            for (var i = 0; i < numberClients; i++)
            {
                clients[i].SendData(_data);
            }

            resetEvent.WaitOne(WAIT_TIMEOUT);
            server.Stop();
            server.Dispose();
            for (var i = 0; i < numberClients; i++)
            {
                clients[i].Dispose();
            }

            Assert.AreEqual(numberClients, results.Count);
            foreach (Byte[] data in results.Values)
            {
                CollectionAssert.AreEqual(_data, data);
            }
        }
Example #30
0
        static void Main(string[] args)
        {
            //SimplySocket();
            //return;
            byte[] val = new byte[] { 0x58, 0x59, 0x5A, 0x41 };

            var i = val.GetString(0, 4);

            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

            server = new CurrencyStore.Communication.Server.SocketServer();
            server.Start();
            Thread.Sleep(1000);
            var th = new Thread(new ThreadStart(DrawDisplay));

            th.Start();
            Console.ReadLine();
            exit = true;
            server.Stop();
        }