Как отключить программу от сервера

В этой статье описывается временное отключение входа клиента сервера терминалов.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 186627

Аннотация

Если необходимо отключить подключение к серверу терминалов, у вас есть несколько вариантов. Отключение подключения для клиентов сервера терминалов отличается от отключения обычного подключения пользователей. Для подключения без клиента можно приостановить или остановить службы net Logon или Server в панель управления/Services. Однако службу сервера терминалов нельзя приостановить, остановить или отключить.

Отключение клиентского подключения

Чтобы отключить клиентское подключение, можно:

  1. Остановите подключение к серверу терминалов в командной строке с помощью команды «Изменить вход /Отключить». Вы можете повторно включить подключение с помощью параметра «Изменить вход в систему /Включить».
  2. Остановите подключение к определенному подключению сокета в разделе «Конфигурация подключения к серверу терминала» в разделе «Подключение или отключение». Это то же действие, что и открытие подключения и выбор входа или отключения в разделе » Расширенная конфигурация».
  3. Остановите подключение пользователя или группы к определенному подключению сокета в разделе «Конфигурация подключения к серверу терминалов» в разделе «Безопасность и разрешения».
  4. Остановите подключение для определенного пользователя в Диспетчере пользователей, открыв учетную запись пользователя и выбрав CONFIG. Здесь можно снять флажок » Разрешить вход на сервер терминала». При изменении учетной записи домена пользователя пользователь не сможет подключиться к домену с сервера терминалов ANY. Другие параметры относятся к серверу терминалов, на котором они задано.

Обратная связь

Были ли сведения на этой странице полезными?

Как отключить прокси-сервер в Windows 10, 7?

Источник: learn.microsoft.com

Как отключить клиент от сервера, не закрывая при этом приложения — C#

Приветствую. Имеется 2 приложения сервер-клиент. При загрузке форму сервер запускается на прослушку из класса, отправка так-же из класса. Собственно вопросы: 1)Как правильно завершить поток? Как отключить клиент от сервера, не закрывая при этом приложения.

Читайте также:
Каково программа отар кушанашвили последние

2)Как научить сервер слушать сразу несколько клиентов? Или хотя бы переходить в режим прослушки после отсоединения первого клиента. Класс сервера:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace Server < class Class1 < public static int i; public static TcpListener server = new TcpListener(IPAddress.Any, 11000); public static NetworkStream stream; public static TcpClient client; public static byte[] datalength = new byte[4]; public static string message; public static void ServerReceive() < stream = client.GetStream(); new Thread(() => < while ((i = stream.Read(datalength, 0, 4)) != 0) < byte[] data = new byte[BitConverter.ToInt32(datalength, 0)]; stream.Read(data, 0, data.Length); message = System.Environment.NewLine + «Client : » + Encoding.Default.GetString(data); MessageBox.Show(message); >>).Start(); > public static void ServerSend(string msg) < stream = client.GetStream(); byte[] data; data = Encoding.Default.GetBytes(msg); int length = data.Length; byte[] datalength = new byte[4]; datalength = BitConverter.GetBytes(length); stream.Write(datalength, 0, 4); stream.Write(data, 0, data.Length); >> >

Класс клиента:

Как отключить прокси сервер в браузере и Windows


using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace Client < class Class1 < public static string userid; public static string userpass; public static int i; public static TcpClient client; public static NetworkStream stream; public static byte[] datalength = new byte[4]; public static string message; public static string messagei; public static void ClientSend(string msg) < stream = client.GetStream(); byte[] data; data = Encoding.Default.GetBytes(msg); int length = data.Length; byte[] datalength = new byte[4]; datalength = BitConverter.GetBytes(length); stream.Write(datalength, 0, 4); stream.Write(data, 0, data.Length); >public static void ClientReceive() < stream = client.GetStream(); new Thread(() =>< while (((i = stream.Read(datalength, 0, 4)) != 0)) < byte[] data = new byte[BitConverter.ToInt32(datalength, 0)]; stream.Read(data, 0, data.Length); < message= System.Environment.NewLine + «Server : » + Encoding.Default.GetString(data); // Encoding.Default.GetString(data); Converts Bytes Received to String MessageBox.Show(message); >; > >).Start(); > > >

Читайте также:
Язык программирования какие есть программы

Источник: studassistent.ru

Как отключить клиента от сервера сокетов без сбоя сервера?

Я делаю сервер на Python 3.7. Его цель — подключить к нему несколько человек (в настоящее время — один клиент для тестирования) и отправлять данные туда и обратно. Отправляемые данные — это рекорд пользователя в моей игре. Я хочу, чтобы сервер получил данные, сравнил данные с наивысшей оценкой, а затем отправил данные обратно и компьютер сохранил их в файл. Дело в том, что клиент получает текстовые данные как 0 и 1! А при выходе из игры и попытке переподключить сервер вылетает с:

BrokenPipeError: [Errno 32] сломанная труба

Вот код для сервера:

import socket import sys import time servsock = socket.socket() host = ‘192.168.158.155’ port = 5555 highest_score = ‘0’ servsock.bind((host, port)) print(‘Sucsessful bind’) servsock.listen(1) conn, addr = servsock.accept() print(addr, ‘Has connected’) receiving = conn.recv(1024) receiving = receiving.decode() while True: if receiving > highest_score: highest_score = receiving message = highest_score message = message.encode() conn.send(message) else: highest_score = highest_score failed = highest_score failed = failed.encode() conn.send(failed)

Вот код для игрового клиента:

# Read high score with open(‘high_score/high_score.txt’, ‘r+’) as f: score_contents = f.read().replace(«n», » «) f.close() # Send data to server lsock = socket.socket() host = ‘192.168.158.155’ port = 5555 lsock.connect((host, port)) print(‘Connected’) ready_message = score_contents ready_message = ready_message.encode() lsock.send(ready_message) print(‘sent’) new_high_score = lsock.recv(1024) new_high_score = new_high_score.decode() print(str(new_high_score)) with open(‘high_score/GLOBALhigh_score.txt’, ‘r+’) as GLOBALf: GLOBALf.truncate() GLOBALscore_contents = GLOBALf.write(f’Highest Score:,’) GLOBALf.close()

Любая помощь приветствуется!

NateDogg 11 Май 2021 в 22:53

Посмотрите на свой серверный код. Вы принимаете новое соединение, получаете сообщение, а затем входите в бесконечный цикл, обрабатывая это одно сообщение снова и снова, снова и снова. Вы никогда не проверяете наличие другого сообщения и никогда не принимаете новые соединения. Переместите все, что начинается с accept , в цикл while .

Читайте также:
Как поделиться программой в Стиме

Tim Roberts
11 Май 2021 в 22:57

Вам нужно хранить свои результаты в виде целых чисел. Помните, что в строках «1»
Tim Roberts
11 Май 2021 в 22:58

Дело в том, что клиент получает текстовые данные в виде нулей и единиц! Конечно, получает. Все компьютерные данные — это нули и единицы. Пока обе стороны согласны с протоколом, как здесь, все работает.

Ваш код заработал, как только я переместил эти 4 строки.

Tim Roberts
11 Май 2021 в 23:09

1 ответ

Лучший ответ

Настоящий корень вашей проблемы в том, что accept не был в цикле, но вот как использовать целые числа вместо строк. Обратите внимание, что ваш оператор if всегда отправлял фактический рекорд, поэтому нет необходимости дублировать этот код>

import socket import sys import time servsock = socket.socket() host = ‘localhost’ port = 5555 highest_score = 0 servsock.bind((host, port)) print(‘Sucsessful bind’) servsock.listen(1) while True: conn, addr = servsock.accept() print(addr, ‘Has connected’) receiving = int(conn.recv(1024)) if receiving > highest_score: highest_score = receiving message = str(highest_score).encode() conn.send(message)

Еще одна вещь: когда вы отправляете оценку от клиента, вы конвертируете новую строку в пробел. Не делай этого; просто отправьте цифры. И вам не нужно разрешение «r +», если вы собираетесь просто читать, и вам не нужно разрешение «r +», если вы собираетесь просто писать. Используйте для этого «w» и пропустите вызов truncate .

# Read high score with open(‘high_score/high_score.txt’, ‘r’) as f: score_contents = f.read().strip() f.close()

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru