Я пытаюсь настроить сервер, который может отправлять каждому клиенту команды.
Одной из команд является «блокировка», которая блокирует экран клиента.
Когда клиент получает слово «блокировка», он запускаетсяэтот код на клиенте:
import ctypes
ctypes.windll.user32.LockWorkStation()
Этот код блокирует экран, однако он разрывает мое соединение с клиентом ..
Как я могу сделать так, чтобы клиент оставался подключенным, но все еще заблокированным?
Примечание: блокировка не вечна!это всего лишь один раз, как перевод компьютера клиента в спящий режим до тех пор, пока он не захочет разблокировать экран.
Надеюсь, я был достаточно ясен.Спасибо за помощь!
Сервер:
import socket
def main():
sock = socket.socket()
sock.bind(('0.0.0.0', 4582))
print("Waiting for connections...")
sock.listen(1)
conn, addr = sock.accept()
print ("New connection from: ", addr)
while 1:
command = input("Enter command> ")
if command == 'shutdown':
sock.send(b'shutdown')
elif command == 'lock':
sock.send(b'lock')
else:
print ("Unknown command")
data = sock.recv(1024)
print (data)
if __name__ == '__main__':
main()
Клиент:
import socket
import ctypes
def main():
sock = socket.socket()
sock.connect(('127.0.0.1', 4582))
while 1:
data = sock.recv(1024)
print (data)
if data == 'lock':
sock.send(b'locking')
ctypes.windll.user32.LockWorkStation()
sock.recv(1024)
if __name__ == '__main__':
main()