Python socket.connect()出错了

时间:2015-06-16 21:49:00

标签: python sockets

Python版本2.7.3

Python代码,交互模式

import socket
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect(("192.168.95.148",21))

错误

>>> s.connect(("192.168.95.148",21))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.timeout: timed out

语法看起来正确。我甚至尝试使用另一个可ping和同样错误的IP地址。

谢谢!

2 个答案:

答案 0 :(得分:2)

我正在查看您正在使用的端口(21),它是FTP端口。

https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

我没有看到代码本身有任何错误,但这里有一些我担心的事情:

a)许多地方锁定并关闭FTPtelnet等端口      这是历史上使用过的,但在今天安全的世界中,      我们使用scpssh(而不是ftpssh)。你可能会跟你说话      系统管理员,看看该服务是否已打开,      或者更不用说你的文件墙甚至允许该端口通过。

b)我不习惯看到默认参数,但我认为你      想要

  

socket(socket.AF_INET,socket.SOCK_STREAM)

我有Python 2.6,这是默认设置(我假设    对于2.7)是相同的。

c)我会尝试在不同的端口上查看它是否是端口问题。      当然,早期编号的端口是特殊的“知名端口”      普通用户无法使用。我通常使用端口9711或8888。

d)我也会在没有超时的情况下尝试它,看看是否有效。

我希望这有帮助!

答案 1 :(得分:0)

这不是您问题的直接答案,但如果您正在寻求进行FTP转移,我建议您使用标准ftplib模块吗?

相关问题