远程查看桌面

作者: 圣_狒司机 | 来源:发表于2018-05-11 12:34 被阅读125次

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库对流的处理不清晰,似乎总是把流当成一整块传输。
. 最好改成静默程序,运行时不会对台式机产生影响。

查看局域网电脑桌面

相关文章

网友评论

    本文标题:远程查看桌面

    本文链接:https://www.haomeiwen.com/subject/qnlfdftx.html