コード例 #1
0
        public override void Close()
        {
            senderClient?.Close();
            listenerClient?.Close();

            NetworkServiceLogger.Log("UDP протокол закрыт");
        }
コード例 #2
0
        public override void Close()
        {
            _senderClient?.Close();
            _listenerServer?.Stop();

            NetworkServiceLogger.Log("TCP протокол закрыт");
        }
コード例 #3
0
        public override void SetListenerPort(int port)
        {
            ListenerPort = port;

            listenerClient = new UdpClient(ListenerPort);

            NetworkServiceLogger.Log($"Порт прослушивания {ListenerPort} установлен");
        }
コード例 #4
0
        public override void SetListenerPort(int port)
        {
            ListenerPort = port;

            _listenerServer = new TcpListenerWrapper(IPAddress.Any, port);
            NetworkServiceLogger.Log($"Порт прослушивания {ListenerPort} установлен");

            _listenerServer.Start();
            NetworkServiceLogger.Log("Прослушивание началось");
        }
コード例 #5
0
        public virtual void SetRecieverPort(int port)
        {
            if (port == -1)
            {
                return;
            }

            RecieverPort = port;

            NetworkServiceLogger.Log($"Порт получателя {RecieverPort} установлен");
        }
コード例 #6
0
        public virtual void SetRecieverIp(string ip)
        {
            IPAddress parsedIp;
            var       isParsed = IPAddress.TryParse(ip, out parsedIp);

            if (isParsed == true)
            {
                RecieverIp = parsedIp;
                NetworkServiceLogger.Log($"Адрес получателя {RecieverIp} установлен.");

                return;
            }

            NetworkServiceLogger.LogWarning($"IP адрес \"{ip}\" имеет некорректный формат. (x*.x*.x*.x*)");
        }
コード例 #7
0
        public override void ListenString(Action <string> eventActivator)
        {
            if (_listenerServer == null)
            {
                return;
            }

            if (!_listenerServer.Active)
            {
                return;
            }

            try
            {
                // Пока есть ожидающие подключения
                while (_listenerServer.Pending())
                {
                    var client = _listenerServer.AcceptTcpClient();

                    var clientEntity = new ClientEntity(this, client, eventActivator);
                    clientEntity.OnProcessComplete += (x) => RemoveClient(x);
                    clients.Add(clientEntity);

                    // Запуск потока с обработкой клиента
                    var clientThread = new Thread(new ThreadStart(() => clientEntity.Process()));
                    clientEntity.SetThreadReference(clientThread);
                    clientThread.Start();
                }
            }
            catch (SocketException ex)
            {
                NetworkServiceLogger.Log($"Получение клиентов остановлено извне {ex.ErrorCode}");
            }

            return;
        }