我在使用这个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确认我正在连接服务器。
提前致谢。
答案 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'