远程查看桌面

1. 原理

py的socket库是个高度抽象的网络链接库,而且原装自带,不需要安装,使用他你只需要把socket当成插座,你插入这一头,然后双手合十指望他能连接到另一头,一般情况下都是能连接成功的,当然前提是你了解了用什么协议,对方开了什么端口。

2. 代码

服务 端:

import socket
from cv2 import cv2
import numpy as np
from PIL import ImageGrab

server = socket.socket()

server.bind(('192.168.249.18',1179))
print('[+] {host} is ready!'.format(host=server.getsockname()))
server.listen(5)

conn,add = server.accept()
print('[+] {connadd} connected!'.format(connadd=add))
while True:
    data = ImageGrab.grab(bbox=(50,50,800,600))
    data = np.array(data)
    data = data[:,:,1]
    text = data.dumps()
    conn.send(text)

server.close() 

客户端:

import socket
import numpy as np
from cv2 import cv2

client = socket.socket()
client.connect(("192.168.249.18",1179))
print("[+] connected!")

while True:
    text = client.recv(10240000000)
    try:
        data = np.loads(text)
        cv2.imshow('1',data)
        if cv2.waitKey(50) == 27:break
    except:pass

client.close()

3. 效果

左边的台式机是实验机,右边的笔记展示了试验机的即时桌面。
需要改进的地方:
. 流媒体传输十分卡,所以最好转换成黑白的减少数据量。
. socket库对流的处理不清晰,似乎总是把流当成一整块传输。
. 最好改成静默程序,运行时不会对台式机产生影响。

查看局域网电脑桌面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容