首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的Python脚本,但不会返回数据

简单的Python脚本,但不会返回数据
EN

Stack Overflow用户
提问于 2015-09-02 15:22:27
回答 1查看 96关注 0票数 0

我剧本的目的很简单!我只想要一个脚本,它将在mysite.com:1000登录到我的服务器,运行一个命令,返回该命令的结果并打印出来。

你可以自己试试:

开式油泥

连接到: mysite.com

港口: 1000

类型:生

用户名:测试

密码:测试

这是剧本

代码语言:javascript
复制
import socket    # used for TCP/IP communication 

 
# Prepare for transmission
TCP_IP = 'mysite.com'
TCP_PORT = 1000
BUFFER_SIZE = 1024

#Log in as user "test" password "test" and run "/stats"
MESSAGE = '\ntest\ntest\n/stats'

 
# Open socket, send message, close socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
print "Connected\n"
s.send(MESSAGE)
print "Message Sent\n"
data = s.recv(BUFFER_SIZE)
print "Data Recvd:\n"
print data
s.close()
print "Socket closed"

当脚本运行时,它返回:

代码语言:javascript
复制
Connected

Message Sent

Data Recvd:


Socket closed

没有收到任何数据。

有什么想法吗?

谢谢

编辑:

我现在正在取回数据(谢谢!),但还是无法登录。

新脚本:

代码语言:javascript
复制
import socket    # used for TCP/IP communication 
import time
 
# Prepare for transmission
TCP_IP = 'mysite.com'
TCP_PORT = 1000
BUFFER_SIZE = 2048

#Log in as user "test" password "test" and run "/config"
MESSAGE1 = '\r\ntest'
MESSAGE2 = '\r\ntest'
MESSAGE3 = '\r\n/stats'
 
# Open socket, send message, close socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
print "Connected\n"
s.send(MESSAGE1)
time.sleep(1) # delays for 1 second
s.send(MESSAGE2)
time.sleep(1)
s.send(MESSAGE3)
time.sleep(1)
print "Message Sent\n"
data = s.recv(BUFFER_SIZE)
print "Data Recvd:\n"
print data
s.close()
print "Socket closed"

当我运行脚本时:连接

代码语言:javascript
复制
Message Sent

Data Recvd:

Connection from [1.1.1.1]

Welcome to mysite.com Server

Enter your account name and password.


Username: 
Password: 
Socket closed
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-02 15:44:45

代码语言:javascript
复制
import socket    # used for TCP/IP communication 


# Prepare for transmission
TCP_IP = 'ip.com'
TCP_PORT = 10000
BUFFER_SIZE = 1024

#Log in as user "test" password "test" and run "/stats"
MESSAGE = '\r\n'


# Open socket, send message, close socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
print "Connected\n"
s.send(MESSAGE)
print "Message Sent\n"
data = s.recv(BUFFER_SIZE)
print "Data Recvd:\n"
print data
#ADDED THESE LINES AS WELL
s.send("test\r\n")
data = s.recv(BUFFER_SIZE)
print "Data Recvd:\n"
print data
s.close()
print "Socket closed"

应该给你足够的指导,让你自己去做剩下的事。只需将数据分块发送即可。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32357103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档