【问题标题】:cannot connect 21 port with socket under pythonpython下无法用socket连接21端口
【发布时间】:2015-05-23 16:46:59
【问题描述】:

我正在学习socket程序,想连接21端口,所以我打开一个使用21 post的软件“FTPServer”,但我仍然无法连接21。 这是代码:

import socket
import sys
   s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
      try:
         s.connect(('192.168.199.230',21))
         print 'connect!'
      except socket.error,e:
         print 'cannot connect'
         print e
         sys.exit()

错误为10060,表示超时 问题出在哪里?感谢您的帮助!

【问题讨论】:

  • 您可以使用 telnet 连接到服务器以确保它正确侦听连接吗?
  • 检查 ftp 服务器是否正在运行,检查您是否可以连接到真正的 ftp 客户端,检查您是否可以 ping ip 地址,并检查是否在发送和接收端都没有防火墙一边。
  • @mittmemo,使用telnet还是无法连接
  • @PhilipStuyck,无法ping通ip地址,怎么打开21?
  • @evbo IP@ 是否正确?你确定你的网络。首先检查本地 IP@。在运行 ftp 服务器的服务器上连接到 127.0.0.1。接下来验证机器的IP@。

标签: python sockets port


【解决方案1】:

在尝试使用程序之前,请检查您是否能够手动连接到 ftp 服务器。无论网络存在什么问题,任何问题都会出现,而无需您怀疑自己的程序。
所以一步一步来:

  • 检查是否可以 ping 192.168.199.230
  • 检查可以连接到 192.168.199.230 的 ftp 客户端

如果上述方法不起作用,您必须先排查为什么这不起作用。例如,通过检查客户端和服务器计算机上的防火墙设置。

另一种使事情变得更容易的方法是首先在本地运行 ftp 服务器,然后使用环回 IP 地址连接到它。 (127.0.0.1)。 同样在这种情况下,您可以应用手动验证。运行 ftp 服务器并通过 127.0.0.1 连接到它。然后,您可以以更简单的方式开始开发您的客户端,即使没有真正的网络,也没有防火墙问题。

【讨论】:

  • 我将 '192.168.199.230' 替换为 '127.0.0.1',它可以工作,但为什么呢?如果端口是开放的,我认为他们的结果应该是一样的,或者网址不同?
  • 取决于,192.168.199.230 是你的本地机器吗?
  • 好吧,我是个傻瓜!我是一个傻瓜 !我是一个傻瓜 !我记错了!,非常感谢!我爱你!
猜你喜欢
  • 1970-01-01
  • 2017-05-15
  • 2019-10-12
  • 1970-01-01
  • 2017-02-13
  • 2015-01-14
  • 2019-12-05
  • 1970-01-01
  • 2019-11-08
相关资源
最近更新 更多