Python (qpython) программирование сокетов - PullRequest
0 голосов
/ 20 мая 2018
import socket
import sys

# creating socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

host = 'www.google.com'
port = "80"


x = "GET  /  HTTP/1.1\r\nHost :  "+ host + "\n\n"

s.connect((host, port)
s.send(request.encode()) # the line has error invalid syntax 

response  = s.recv(4096)

print (response)

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Добавление к существующему ответу о проблемах с вашим кодом:

x = "GET  /  HTTP/1.1\r\nHost :  "+ host + "\n\n"

Вы пытаетесь создать здесь HTTP-запрос, но ошибаетесь:

  1. после Host не должно быть пробела, то есть оно должно быть Host: hostname, а не Host: hostname, как вы.
  2. Конец строки должен быть \r\n, а не \n.Вы получаете это сразу после первой строки, но не после заголовка Host и не для маркера конца заголовка.
0 голосов
/ 20 мая 2018

Ошибка в этой строке:

s.send(request.encode()) # the line has error invalid syntax

Причина: вы определили запрос с именем переменной x, поэтому он должен работать для вас,

s.send(x)
...