Python TCP客户端无法正常工作

时间:2016-11-12 03:46:29

标签: python python-3.x http tcp

我在使用这个python客户端时遇到了一些问题。如果有人能告诉我什么是错的,我会很感激。

import socket, sys, time, os

host = '155.94.243.10'
port = 80

mySocket = socket.socket()
mySocket.connect((host,port))

message = input('>>>')
while message != 'q':
    mySocket.send(message.encode())
    data = mySocket.recv(1024).decode()
    print('Received from server: ' + str(data))
    message = input('>>>')
mySocket.close()

我正在使用" GET / HTTP / 1.1"作为输入。

我没有得到服务器的回复,我应该收到一条错误消息(我认为)

编辑:我使用wireshark确认我正在连接服务器。

提前致谢。

1 个答案:

答案 0 :(得分:2)

客户端必须在所有标头后面发送空行。它通知服务器它获取所有标题并且它可以发送响应(或者如果你发送POST它必须读取正文。)

import socket
import sys
import time
import os

#host = '155.94.243.10'
host = 'stackoverflow.com'
port = 80

mySocket = socket.socket()
mySocket.connect((host,port))

message = input('>>>')

while message != 'q':

    message += '\n\n'
    #message = 'GET / HTTP/1.1\n\n'

    mySocket.send(message.encode())
    data = mySocket.recv(1024).decode()
    print('Received from server: ' + str(data))
    message = input('>>>')
mySocket.close()

编辑:似乎'155.94.243.10'需要其他标头才能获得结果。尝试

message = 'GET / HTTP/1.1\nHost: 155.94.243.10\n\n'