【发布时间】:2020-05-20 13:27:20
【问题描述】:
我最初尝试使用 python 运行但出现不同的错误,所以我尝试使用 python3 并收到标题中的错误。我正在尝试连接到服务器并下载已实现 tls 的文件。
import socket, ssl, pprint
import os, time
import threading
def main():
s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s2,
server_side = False,
ca_certs="CA.crt",
cert_reqs=ssl.CERT_REQUIRED)
s2.connect(('localhost',10024))
filename = raw_input("What file do you wish to download? -> ")
if filename != 'q':
s2.send(filename)
data = s2.recv(1024)
if data [:7] == 'fEXISTS':
fSize = long(data[7:])
message = raw_input("The file you wish to download is " +str(fSize)+\
"bytes, would you like to proceed? (y/n): ")
if message == 'y':
s2.send ('OK')
f = open('new_'+filename, 'wb')
data = s2.recv(2000000)
totalRecv = len(data)
f.write(data)
while totalRecv < fSize:
data = s2.recv(2000000)
totalRecv += len(data)
f.write(data)
progress = ((totalRecv/float(fSize))*100)
print ("{0: .2F}".format(progress)+\
"% Completed")
else:
print ("ERROR: File does not exist!")
s2.close()
if __name__ == '__main__':
main()
【问题讨论】:
-
你能分享你在哪一行收到错误吗?
-
它说第 17 行,s2.connect 所在的位
-
你为什么使用 Python 2?上面的代码也不能在 Python 3 上运行,因为它使用了
raw_input()。顺便说一句:根据站点指南,您需要提供minimal reproducible example,因此特别是如果错误之后的代码无论如何都没有执行,您应该将其删除。作为新用户,也可以使用tour 并阅读How to Ask。