Python的TCP客户端不工作
问题描述:
我在使用这个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”作为输入。
我没有得到任何来自服务器的响应,我应该得到的错误信息(我认为)
编辑:我使用Wireshark来确认我连接到服务器。
在此先感谢。
答
客户端必须发送空行后所有标题。它通知服务器它会得到所有头文件,并且可以发送响应(或者如果您发送POST
,它必须读取正文)。
import socket
import sys
import time
import os
#host = '155.94.243.10'
host = '*.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'
+0
谢谢,我试图在输入中添加换行符。 –
我建议你停止重新发明*,并使用其中的许多python http客户端。蟒蛇的请求可以高度推荐 – e4c5
@ e4c5我会一定要看看它!我也是这样做的,只是为了了解TCP。感谢您的建议。 –
@ Zimm3r不,这很明显是一个连接到HTTP服务器的HTTP客户端,而不是它本身。它发送HTTP服务器读取输入,然后发回一个响应,程序读取。它的结构是正确的。 – Natecat