2016-11-12 2 views
0

У меня возникли проблемы с этим клиентом python. Буду признателен, если кто-нибудь скажет мне, что случилось.Клиент Python TCP не работает

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» в качестве входа.

я получаю никакого ответа от сервера, я не должен получать сообщение об ошибке (я думаю)

Edit: я использовал Wireshark для подтверждения Я подключение к серверу.

Заранее спасибо.

+1

Предлагаю вам прекратить изобретать колесо и использовать один из многочисленных клиентов http-python. python-запросы могут быть очень рекомендованы – e4c5

+1

@ e4c5 Я обязательно посмотрю! Я также делаю это только для того, чтобы узнать о TCP. Спасибо за предложение. –

+0

@ Zimm3r Нет, это очень явно HTTP-клиент, подключающийся к HTTP-серверу, а не сам. Он отправляет, HTTP-сервер читает ввод, а затем отправляет ответ, который программа читает. Он структурирован правильно. – Natecat

ответ

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

EDIT: кажется '155.94.243.10' потребности другие заголовки, чтобы получить результат. Попробуйте

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

Спасибо, я пытался добавить новые строки с помощью ввода. –

Смежные вопросы