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 を 2 回送信して、HTTP ヘッダーの末尾を正しく示す必要があります。

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

Python requestsパッケージを使用してみましたか?

いずれにせよ、ここに問題があります:

clientSocket.send("GET /filename")

(少なくとも)次のようにする必要があります。

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

filename文字列内に書き込むと、代わりに変数に評価されないため、文字列の書式設定filenameを使用する必要があります

于 2013-10-16T13:04:15.760 に答える