猿问

在不中断连接的情况下使用套接字锁定另一台计算机

我正在尝试建立一个可以发送每个客户端 - 命令的服务器。

一个命令是“lock”,它锁定客户端的屏幕。

当客户端收到“锁定”一词时,它会在客户端上运行以下代码:


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()


侃侃无极
浏览 175回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答