Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将tcp套接字连接到ftp服务器_Python_Sockets_Ftp - Fatal编程技术网

Python 如何将tcp套接字连接到ftp服务器

Python 如何将tcp套接字连接到ftp服务器,python,sockets,ftp,Python,Sockets,Ftp,我在地址ftp://192.168.1.14/和端口21。我想用Python编写一个程序来连接它并下载它的文件。这是我的家庭作业,我必须使用TCP。我的问题陈述是 “您需要使用基于python的TCP协议实现一个简单的FTP操作。 你必须创建一个FTP服务器和客户端。然后你必须创建一个TCP 套接字(SOC_SREAM)并在服务器和客户端之间建立连接 您创建(编程)的模块。一旦建立连接,就需要您 将文件(存储在服务器目录中的文本文件)传输到客户端目录。“ 我可以使用ftplib来完成,但现在我想

我在地址
ftp://192.168.1.14/
和端口
21
。我想用Python编写一个程序来连接它并下载它的文件。这是我的家庭作业,我必须使用
TCP
。我的问题陈述是

“您需要使用基于python的TCP协议实现一个简单的FTP操作。 你必须创建一个FTP服务器和客户端。然后你必须创建一个TCP 套接字(SOC_SREAM)并在服务器和客户端之间建立连接 您创建(编程)的模块。一旦建立连接,就需要您 将文件(存储在服务器目录中的文本文件)传输到客户端目录。“

我可以使用
ftplib
来完成,但现在我想使用简单的套接字tcp来完成。到目前为止,我所做的是

导入套接字
s=socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
s、 绑定('ftp://192.168.1.14/', 21))
#还尝试了s.bind((socket.gethostname(),21))
但我收到的错误是

回溯(最近一次呼叫最后一次):
文件“server.py”,第34行,在
s、 绑定('ftp://192.168.1.14/', 21))
socket.gaierror:[Errno 11001]getaddrinfo失败
希望你能帮助我。谢谢

编辑: 使用
s.bind((socket.gethostname(),21))

错误消息是

回溯(最近一次呼叫最后一次):
文件“server.py”,第34行,在
s、 绑定((socket.gethostname(),21))
OSError:[WinError 10013]试图以其访问权限所禁止的方式访问套接字

我解决了这个问题。因为我想连接到现有的IP地址,所以它的方法是
connect
而不是
bind
。所以正确的代码应该是

导入套接字
s=socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
s、 连接((socket.gethostname(),21))
印刷品

1。给定的地址必须存在于您的计算机上(如果您在不同于目标系统的系统上开发,这可能很重要)。2.端口不得已在使用中,且不得被防火墙阻止。