首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.recv()在python中截断了换行符上的输出?

socket.recv()在python中截断了换行符上的输出?
EN

Stack Overflow用户
提问于 2013-01-30 00:51:50
回答 1查看 3.6K关注 0票数 0

底线

  • 脚本并不会打印从socket.recv()到linux终端的所有内容。
  • 如果我在解释器中做同样的事情,它会将所有数据打印到终端。

(假设我使用本地网关进行ip,23用于端口,所以我的路由器要进行远程上网)

代码语言:javascript
复制
import socket
q = socket.socket()
q.connect(ip, port)
data = q.recv(1024)
print data

解释器中的输出为四行:

(在第一行中有一些alt代码的胡言乱语或其他什么)

RT v24-sp2 std (c) 2012 NewMedia-NET GmbH

发行日期: 03/21/12 (SVN修订版: 18795)

DD-WRT登录:

脚本输出:

(只是第一行中的alt代码胡言乱语)

任何关于这种情况发生的原因以及如何纠正的建议都将不胜感激。

谢谢,

安德鲁

EN

回答 1

Stack Overflow用户

发布于 2013-01-30 02:26:05

当一次缓慢地运行命令时,在您有机会调用q.recv(1024)之前,您的路由器有时间发送它计划发送的所有内容。

当您从脚本中运行它时,这些命令会快速地连续执行。当脚本执行q.recv(1024)时,路由器只能发送一些数据,而不是全部数据。

由于您不使用循环返回并尝试读取更多的数据,所以您将不会接收(或打印)更多的数据。

(顺便问一句,世界上什么是“alt代码胡言乱语”?您应该在这里获得一些二进制数据,它们是telnet协议协商的一部分。)

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

https://stackoverflow.com/questions/14594923

复制
相关文章

相似问题

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