Python错误处理和连接错误

miny1997

我正在使用Telnet客户端。我开始在笔记本(Windows)上进行编码,最后将其上传到服务器(Debian)上。两种系统都可以在Python 3上运行。在我的笔记本上,脚本运行良好,但是在Debian上,确实会出错。

代码:

import telnetlib
import sys
try:
    HOST = sys.argv[1]
    user = sys.argv[3]
    password = sys.argv[4]
    cmd= sys.argv[5]
    port=int(sys.argv[2])

    tn = telnetlib.Telnet(HOST, port)

    tn.read_until(b"username: ")
    tn.write(user.encode('ascii') + b"\n")
    if password:
        tn.read_until(b"password: ")
        tn.write(password.encode('ascii') + b"\n")

    tn.write(cmd.encode('ascii') + b"\n")
except ConnectionRefusedError:
    print('ERROR')
else:
    print('OK')

服务器(带有RemoteToolKit的CraftBukkit服务器):

Mar 05, 2014 12:39:58 PM net.wimpi.telnetd.net.ConnectionManager makeConnection
INFO: connection #1 made.
Unexpected error in shell!
java.net.SocketException: Connection reset
>       at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
>       at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
>       at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
>       at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
>       at java.io.DataOutputStream.flush(DataOutputStream.java:123)
>       at net.wimpi.telnetd.io.TelnetIO.flush(Unknown Source)
>       at net.wimpi.telnetd.io.TerminalIO.flush(Unknown Source)
>       at net.wimpi.telnetd.io.TerminalIO.write(Unknown Source)
>       at com.drdanick.McRKit.Telnet.ConsoleShell.run(ConsoleShell.java:78)
>       at net.wimpi.telnetd.net.Connection.run(Unknown Source)
Mar 05, 2014 12:39:58 PM net.wimpi.telnetd.net.ConnectionManager cleanupClosed
INFO: cleanupClosed():: Removing closed connection Thread[Connection1,5,]

问候小薄荷

编辑:错误处理现在工作!THX @ Wojciech Walczak客户端不报告错误,但是服务器报告错误。如果我在Windows上运行相同的代码,则不会出错。

miny1997

错误在脚本中。Linux上的telnet命令运行良好。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章