python socket客户端程序2(获取请求)

时间:2013-10-16 13:01:55

标签: python sockets

感谢所有人解决我的第一个问题。但是最后一个问题。

#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()

最后,我无法收到带有特定filname的内容。我认为这一点在" /" 我怎么解决?

2 个答案:

答案 0 :(得分:1)

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

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

clientSocket.send("GET /{}\r\n\r\n".format(filename))

答案 1 :(得分:1)

您是否尝试过使用python requests套餐?

无论哪种方式,你都有问题:

clientSocket.send("GET /filename")

应该(至少)是:

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

当您在字符串中写filename时,它不会将其评估为变量filename,而是需要使用string formatting