0

谢谢大家解决我的第一个问题。但是还有一个最后的问题。

#import socket module

import sys
import httplib
from socket import *
serverName = sys.argv[1]
serverPort = int(sys.argv[2])
filename = sys.argv[3] 
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
clientSocket.send("GET /filename")
while True:
    data = clientSocket.recv(1024)
    if not data:
        break
    print data,filename
clientSocket.close()

最后,我无法接收具有特定文件名的内容。我认为重点在“/”我该如何解决?

4

2 回答 2

1

该程序是否与 HTTP 服务器通信?

然后,它应该发送两次 CR+LF 以正确表示 HTTP 标头的结尾。

clientSocket.send("GET /{}\r\n\r\n".format(filename))
于 2013-10-16T13:04:08.617 回答
1

您是否尝试过使用python 请求包?

无论哪种方式,您都会遇到问题:

clientSocket.send("GET /filename")

应该(至少)是:

clientSocket.send("GET /%s" % filename)

当您filename在字符串中写入时,它不会将其评估为变量filename,您需要使用字符串格式

于 2013-10-16T13:04:15.760 回答