【发布时间】:2015-05-20 13:29:30
【问题描述】:
场景是:
- 客户端将输入文件名,例如 xyz
- 服务器将显示它在不同文件夹中的所有文件。
客户端将选择 1 或 2 或 3(如果有)。 并且文件将被下载。
我已经完成了搜索部分。我需要有关下载文件并将其保存在任何其他目录中的帮助。
到目前为止,我的代码是用于搜索文件。
import socket
tcp_ip="127.0.0.1"
tcp_port=1024
buffer_size= 200
filename=raw_input("Enter file name\n")
s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((tcp_ip,tcp_port))
data=s.recv(buffer_size)
s.close()
服务器代码:(此代码现在用于一个文件)所需的帮助是如何下载和保存在服务器上找到的文件。
import socket
import os
tcp_ip='127.0.0.1'
tcp_port=1024
buffer_size=100
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((tcp_ip, tcp_port))
s.listen(1)
conn, addr = s.accept()
print 'Connection Address:',addr
while 1:
data=conn.recv(buffer_size)
if not data:
break
else:
print "received server side data:", data
conn.send(data)
conn.close()
【问题讨论】:
-
您没有为此使用 HTTP 有什么特别的原因吗?
-
我必须使用 tcp。
-
HTTP 通过 TCP 工作。
-
Http 的解决方案是什么?
-
请记住,对于 localhost(环回接口),有效负载大小为 65K (MTU),这与以太网的 1500 字节(通常,巨型电缆可以传输 9K 字节)MTU 不同。所以你可以在这里增加缓冲区大小。