蟒蛇。将标准输出重定向到套接字

Murzagurskiy

我在“ A”计算机上运行脚本,然后通过脚本从“ B”计算机连接到“ A”计算机。我将消息发送到计算机“ A”,并且我的脚本使用“ exec()”指令运行它。

我想通过“ B”计算机上的套接字查看在“ A”计算机上执行消息的结果。我尝试更改sys.stdout = socket_response但有一个错误:“套接字对象没有属性write()”

因此,如何通过套接字连接将标准输出(用于print或exec())从“ A”计算机重定向到“ B”计算机。”

这将是我脚本中的某种“ python解释器”。

抱歉,我无法回答自己的问题

谢谢大家!

我使用简单的方法,建议我@Torxed。这是我的猴子代码(这只是一个示例,不是我的真实脚本)

    #-*-coding:utf-8-*-
import socket
import sys

class stdout_():

    def __init__(self, sock_resp):
        self.sock_resp = sock_resp

    def write(self, mes):
        self.sock_resp.send(mes)


MY_IP = 'localhost'
MY_PORT = 31337

srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Start server")
old_out = sys.stdout


srv.bind((MY_IP, MY_PORT))
srv.listen(0)
sock_resp, addr_resp = srv.accept()
new_out = stdout_(sock_resp)
sys.stdout = new_out
#sys.stdout = sock_resp ### sock_object has no attribute 'write'
while 1:
    try:
        a = sock_resp.recv(1024)
        exec(a)
    except socket.timeout:
        #print('server timeout!!' + '\n')
        continue

我用Putty连接到脚本并发送“ print'abc'”,然后收到答复“ abc”

恩普

makefilepython套接字类中函数:

插座。makefile(mode ='r',buffering = None,*,encoding = None,errors = None,newline = None)

返回与套接字关联文件对象返回的确切类型取决于赋予makefile()的参数。这些参数的解释方式与内置的open()函数相同。

除非没有剩余的套接字引用,否则关闭文件对象不会关闭套接字。套接字必须处于阻止模式;它可能会有超时,但是如果发生超时,文件对象的内部缓冲区可能会以不一致的状态结束。

您可以在Mark Lutz的书中阅读如何使用它(使套接字看起来像文件和流一章

书中的示例(想法很简单:使用socket创建文件对象并与其socket.makefile链接sys.stdout):

def redirectOut(port=port, host=host):
    """
    connect caller's standard output stream to a socket for GUI to listen
    start caller after listener started, else connect fails before accept
    """
    sock = socket(AF_INET, SOCK_STREAM)
    sock.connect((host, port))                # caller operates in client mode
    file = sock.makefile('w')                 # file interface: text, buffered
    sys.stdout = file                         # make prints go to sock.send
    return sock                               # if caller needs to access it raw

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python。将标准输出重定向到套接字

来自分类Dev

将标准输出重定向到文件

来自分类Dev

将标准输出重定向到整数

来自分类Dev

将错误重定向到标准输出

来自分类Dev

如何将标准输出重定向到标准错误

来自分类Dev

将标准输入重定向到标准输出

来自分类Dev

将输出重定向到标准输出而不是文件

来自分类Dev

Android,ADB,将STDOUT重定向到套接字

来自分类Dev

Android,ADB,将STDOUT重定向到套接字

来自分类Dev

C将标准输出重定向到几个地方

来自分类Dev

Linux将标准输出重定向到实时管道

来自分类Dev

如何将Jmeter标准输出重定向到文件

来自分类Dev

Bash将标准输出重定向到功能

来自分类Dev

在 VBS 中重定向到标准输出

来自分类Dev

将进程的标准输出重定向到其自己的标准输入

来自分类Dev

将tty重定向到标准

来自分类Dev

FFMPEG:将MP4多路复用数据重定向到套接字

来自分类Dev

FFMPEG:将Matroska多路复用数据重定向到套接字

来自分类Dev

使用Nginx将Web套接字连接重定向到新创建的Docker容器

来自分类Dev

代理将websockets和http重定向到相同的(unix)套接字

来自分类Dev

Windows Batch-如何在将标准输出重定向到文件时添加时间戳

来自分类Dev

将STDOUT和STDERR重定向到文件,但system()的标准输出/错误除外

来自分类Dev

Supervisord-将流程标准输出重定向到控制台

来自分类Dev

将静默SQL Server安装中的输出重定向到C#中的“标准错误”?

来自分类Dev

将management.call_command()标准输出重定向到文件

来自分类Dev

Lua将标准输出重定向到控制台窗口

来自分类Dev

C将标准输出重定向到带有预定义消息的文件

来自分类Dev

让子进程将printf正确地重定向到标准输出

来自分类Dev

如何将标准输出重定向到CMD中的程序?

Related 相关文章

  1. 1

    Python。将标准输出重定向到套接字

  2. 2

    将标准输出重定向到文件

  3. 3

    将标准输出重定向到整数

  4. 4

    将错误重定向到标准输出

  5. 5

    如何将标准输出重定向到标准错误

  6. 6

    将标准输入重定向到标准输出

  7. 7

    将输出重定向到标准输出而不是文件

  8. 8

    Android,ADB,将STDOUT重定向到套接字

  9. 9

    Android,ADB,将STDOUT重定向到套接字

  10. 10

    C将标准输出重定向到几个地方

  11. 11

    Linux将标准输出重定向到实时管道

  12. 12

    如何将Jmeter标准输出重定向到文件

  13. 13

    Bash将标准输出重定向到功能

  14. 14

    在 VBS 中重定向到标准输出

  15. 15

    将进程的标准输出重定向到其自己的标准输入

  16. 16

    将tty重定向到标准

  17. 17

    FFMPEG:将MP4多路复用数据重定向到套接字

  18. 18

    FFMPEG:将Matroska多路复用数据重定向到套接字

  19. 19

    使用Nginx将Web套接字连接重定向到新创建的Docker容器

  20. 20

    代理将websockets和http重定向到相同的(unix)套接字

  21. 21

    Windows Batch-如何在将标准输出重定向到文件时添加时间戳

  22. 22

    将STDOUT和STDERR重定向到文件,但system()的标准输出/错误除外

  23. 23

    Supervisord-将流程标准输出重定向到控制台

  24. 24

    将静默SQL Server安装中的输出重定向到C#中的“标准错误”?

  25. 25

    将management.call_command()标准输出重定向到文件

  26. 26

    Lua将标准输出重定向到控制台窗口

  27. 27

    C将标准输出重定向到带有预定义消息的文件

  28. 28

    让子进程将printf正确地重定向到标准输出

  29. 29

    如何将标准输出重定向到CMD中的程序?

热门标签

归档