python -- TCP "远程控制"

python -- TCP "远程控制"  指:先建立连接,再通过命令进行远程控制服务器。

在虚拟机的代码程序

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
import os

HOST = "192.168.1.185"
POST = 5000
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
addr = (HOST,POST)
s.bind(addr)
s.listen(1)
conn,addr = s.accept()
def getwinfile():
    conn.send("我准备好接收了")
    filename = conn.recv(1024)
    fdata = conn.recv(20480)
    with open(filename,"wb") as f:
        f.write(fdata)
    conn.send("finsh")

def putlinuxfile():
    conn.send("我准备好传输了")
    file = conn.recv(1024)
    with open(file,"rb") as f:
        fdata = f.read()
    conn.send(fdata)
    conn.send("finsh")
def main(addr):
    print(addr)
    while True:
        data = conn.recv(1024)
        print(data)
        if data == "byebye":
            break
        if data == "wycf":
            getwinfile()
            continue
        if data == "wysf":
            putlinuxfile()
            continue
        f = os.popen(data)
        ret = f.read()
        if ret:
            conn.send(ret)
        else:
            conn.send("finish")
    conn.close()
    s.close()

if __name__ =="__main__":
    main(addr)

在真实机里面的代码程序

import socket

HOST = "192.168.1.185"
PORT = 5000
addr = (HOST,PORT)
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
c.connect(addr) #连接服务器
def putfile():
    data = c.recv(1024)
    print(str(data,encoding="utf8"))
    file = input("请输入文件和路径:")
    filename = file.split("\\")[-1]
    c.send(bytes(filename,encoding="gbk"))
    with open(file,"rb") as f:
        fdata = f.read()
    c.send(fdata)
    data2 = c.recv(1024)
    print(str(data2,encoding="utf8"))

def getfile():
    data = c.recv(1024) #接收对方的准备信息
    print(str(data,encoding="utf8")) #打印
    file = input("请输入对方的文件和路径:")
    c.send(bytes(file,encoding="gbk")) #发送文件名和路径
    filename = file.split("/")[-1] #获取文件名
    fdata = c.recv(20480) #准备接收文件数据
    with open(filename,"wb") as f:
        f.write(fdata) #建立文件
    data2 = c.recv(1024) #接收完成回应消息
    print(str(data2,encoding="utf8"))

def main(addr):
    while True:
        cmd = input("请输入命令:")
        c.send(bytes(cmd,encoding="gbk")) #将命令转换后发送
        if cmd == "byebye": #如果发送byby就退出连接
            break
        if cmd == "wycf":
            putfile()
            continue
        if cmd == "wysf":
            getfile()
            continue
        ret = c.recv(20480)
        #print(str(ret,encoding="gbk"))
        print(str(ret,encoding="utf8")) #收到的信息显示
    c.close()
    
if __name__ == "__main__":
    main(addr)

 

本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑;使用wxPython编写图形化的程序,并进一步将这个程序发展为远程控制程序。 课程目录: |--|----|----1 微信远控:Python 控制电脑的两种方法 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 命令提示符 CMD 入门.mp4 |--|----|----|----3 Python 执行 CMD 命令.mp4 |--|----|----|----4 Python 调用 Win API.mp4 |--|----|----2 微信远控:让微信控制电脑 |--|----|----|----1 微信控制电脑原理.mp4 |--|----|----|----2 新浪邮箱的设定.mp4 |--|----|----|----3 Python 收发邮件.mp4 |--|----|----|----4 微信控制电脑的实现.mp4 |--|----|----|----5 沙盘化的微信远控.mp4 |--|----|----3 Flask 快速搭建网站 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 Flask 与 BootStrap 搭建网页.mp4 |--|----|----|----3 Flask 操作数据库.mp4 |--|----|----4 网页控制电脑 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 建立通信.mp4 |--|----|----|----3 轮询与推送.mp4 |--|----|----|----4 网页控制电脑.mp4 |--|----|----5 Python 图形程序入门 |--|----|----|----1 wxPython 介绍与安装.mp4 |--|----|----|----2 基本控件介绍与绝对布局.mp4 |--|----|----|----3 控件相对布局.mp4 |--|----|----|----4 多线程与事件.mp4 |--|----|----6 编写图形界面的远程控制程序 |--|----|----|----1 远程控制程序的需求分析.mp4 |--|----|----|----2 Socket 通信.mp4 |--|----|----|----3 受控端功能强化.mp4 |--|----|----|----4 远程控制软件的实现与测试.mp4 |--|----|----7 开发远程控制程序高级功能 |--|----|----|----1 高级功能概述.mp4 |--|----|----|----2 读写剪贴板.mp4 |--|----|----|----3 使用 Python 截图.mp4 |--|----|----|----4 Python 上传文件.mp4 |--|----|----|----5 结课总结.mp4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值