Я хочу сделать скрипт, к которому будет обращатся прокси клиент, как к обычному прокси, а он всю информацию будет передавать на настоящий прокси и потом всё в обратном порядке. Питон знаю плохо. Пока, что переделал пример сокет сервера и оно работает только с http запросами. Когда клиент отправляет CONNECT метод для https соединния, сервер возвращает 200 ОК, потом клиент делает ещё один запрос в этом же сеансе и вот с него ответ уже не приходит. Помогите, в чём проблема?
import socket
import threading
class LocalProxy(object):
def __init__(self, host, port):
self.host = host
self.port = port
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind((self.host, self.port))
def listen(self):
self.sock.listen(10)
while True:
client, address = self.sock.accept()
client.settimeout(60)
threading.Thread(target = self.listenToClient,args = (client,address)).start()
def listenToClient(self, client, address):
#Client session oppened
print('Client connected')
#Open server session
server = socket.socket()
server.connect(('proxy ip', 8123))
#Client listen
while True:
#Attempt to receive client data
data = client.recv(8192)
if data:
server.send(data)
while True:
resp = server.recv(8192)
if not resp or len(resp) == 0:
break
print(resp)
client.send(resp)
else:
server.close()
client.close()
break;
if __name__ == "__main__":
LocalProxy('127.0.0.1',2001).listen()