import socket, ssl
# SimpleServer to transmit Page, but some bug occur.
class SimpleServer(object):
"""docstring for simpleServer"""
def __init__(self, adress, exAddr):
super(SimpleServer, self).__init__()
self.addr = adress
self.exAddr = exAddr
def run(self):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(self.addr)
s.listen(5)
print("Welcom to start my server: {}".format(self.addr))
while True:
sock, addr = s.accept()
try:
bai = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM))
except:
bai = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.exAddr = (self.exAddr[0], 80)
bai.connect(self.exAddr)
page = b''
while True:
bai.sendall('GET / HTTP/1.1\r\nHost: {}\r\nConnection: close\r\n\r\n'.format(self.exAddr[0]).encode())
data = bai.recv(1024)
if not data:
break
page += data
sock.sendall(page)
# run Main Part
if __name__ == '__main__':
server = SimpleServer(('localhost', 8001), ('www.baidu.com', 443))
server.run()