import socket
if __name__ == '__main__':
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
tcp_server_socket.bind(('', 8080))
tcp_server_socket.listen(128)
while True:
tcp_server_socket.accept()
new_socket, ip_port = tcp_server_socket.accept()
recv_data = new_socket.recv(4096)
print(recv_data)
with open('js/index.html', 'rb') as f:
file_data = f.read()
response_line = "HTTP/1.1 200\r\n"
response_header = 'Server: PWS/1.0\r\n'
response_body = recv_data
response = response_line + response_header + '\r\n' + str(response_body)
response_data = response.encode('utf-8')
new_socket.send(response_data)
new_socket.close()
输出乱码了,怎么转码?
b'\x16\x03\x01\x06\xf2\x01\x00\x06\xee\x03\x03\x0e\x9d"\xb3\xad\xec%\xe5\xd5\x1d\xfb|\x08\x95\xd3\xba(pi\xf6\xd0\x95\xc9#\xfc\x06U\x82\xear\xf1\xdf \x05\xea\x1e\x17\\-~\t\xba8\xbbn\xcc\xec\xe2\xe3\x0e\xee\x7f)O\xc0\xe2\xd6\x0e\x1c\xa4DL\xc9\xa4\xe5\x00 \n\n\x13\x01\x13\x02\x13\x03\xc0+\xc0/\xc0,\xc00\xcc\xa9\xcc\xa8\xc0\x13\xc0\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x06\x85\xfa\xfa\x00\x00Di\x00\x05\x00\x03\x02h2\x00\r\x00\x12\x00\x10\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08\x06\x06\x01\x00\x0b\x00\x02\x01\x00\x00\x17\x00\x00\xff\x01\x00\x01\x00\x00\x12\x00\x00\x00\x10\x00\x0e\x00\x0c\x02h2\x08http/1.1\x00\x1b\x00\x03\x02\x00\x02\x00\x00\x00\x0e\x00\x0c\x00\x00\tlocalhost\xfe\r\x00\xfa\x00\x00\x01\x00\x01W\x00 \x80\xfb\xfe\riwm\x04\xf5\xc9\t\xcf\xbd\xf9\xfb \xf9\x86\xc4[\x8a\xb4\xa1\xd4\x9d\xdaH\xd5\xceDWS\x00\xd0\xc8\xb3\xdc\xbc=\xddc#\x10\x80\xc1;\xcf\x8d\x19u\x127A\xf7\xfd5\xa0\xbb\xbfe\xa08\x8d\xd1E\x0c+5\xf2H2\xd8\x12n\xff\xbdb\xba&\x12Q\xa6\x85\xe0\t\xd2?o\xf8\x0e\x1e?Y\x0f\x19*\xe9\x12K\xea\x08\\\x06\xa0\xdeJa\x8bB\x17\xcb\x07\xc7\xcd\xdf\x04@Ni\xd0\xd4\x8e\x82\x17\xdf\xfa\x88\xedSJ\xc8\xcd\x84\xbak\xd0\\\xfa<\x16\xae+\x8dG\xb0\xfbX\xa6\x11q/\xc8\x1b.\xdc\x80\xa9\x17\xd6\x92\xa8\xf2\x8e\xf2\x1c\xbd\x81\xab\x07\x94\x1aiUz|\x18\xe3\x827\xca1\xeb\xd5y\xaa\xeb*\x8b=\x07\xb4(\x1c\x01?J\xf3\x91\xec\xc5\xea}\xc0\xca\xbd\xef\xa2\xfb\xbf\xd4\xf9\x11t\r#6\xf5\xa7\xd2JWh\xd5\x8f\xfd\tUBt"\x1eu\xa7\xbdO\x14\x8a\t.y\xa5\n\x003\x04\xef\x04\xedZZ\x00\x01\x00c\x99\x04\xc0\x05\xc6[\xf78\xb3\xacH\xef\xa4\xb3\x95\xfa\x91\x94S\x0co\xee9E7u\x89\xa4e-J\x0e\x08\xfe\t\x88p#\'\xcbX.\x92$\x9aUip\xa4v\xad"\x88U\x81\n@\xb1\xcee\xb6&\xc9\x1c=\xd3"h\xba\x01\xc8\xa4@FVJ\xb0\x82D\x90J\xfb\x12N\x0c_\x90\x12\x0fP<\xb4^\xe4\xa3X\xb1u\xb19FY\xb6G\xc0@eQ\x01S9JE\x01\x87\xb9G\xfb\xab\xe7\xc8\xc5\xba\x08\x86\x9d\xb9K\xae\xc9.-uD\xfc|\xca\x80\xf9\x86\xc9\x91c\x8d\xe3\x16l\xa6\x90\xd4\x02f\xcb"\xb8^+9\xed\xf5\x03\xf1\x11\r\xd4\xc8312\xc7\x87z\x1e\xd6\xd1\xbf\x17Y<z\x0c\x89\xf8\xeb\xbd\xc9\x03\xc2\xa7\xe5zgu\x87"\xfcwg\xc6z\x9b\x02]c\xf7\x0eiR\xcd^\xfcPv\xf9\x04\xb0gm\x12\xe4\xc5\xfd\xd8\n\x1fb\xae\x16\x04\xba\xda\xc6I}\x8c\x9e\xb0:\xc4\xfe\xd9B\xec\x89\x19>\xc4\x16\xed6\xcd\xa4\xf7\x8c&\x93\x1f"\xb3\xba:\xd4\x84G\xe3P\xa7\x17\xcf\xfc\xa9\x96\xbe\xb0\xa8\x18\x0c\x01\x8dfJ[\xd4\x85\x1c\x92(IE\xa1oZj9\x85\xa8\xa4E\x12H\xa2\x12kT\xac\x8a|\x0eKf\x13\xd5\xd4\xa3,K\x82>+W,\x05\x947 \xa0\x95)\x89\xd1w|Kkg\xa9&\xb3r\x9c<\xfa\xd1\x9d\x84u\x85\x85\xfc\xa2]\x05\x858\xba\xab\x80\xc6u3\xf6h\x8b\xc6\x97p\x1b2\xcd\xf2\xb4\xb7&\x7fi\xa3;\xbc\xe1\x95\x8e<\x89\xe4To\x08\x8a\x8e\xb0\xd5\xcd\x0c\xb3\xcb\x85[\xc8\xf3\x12<sI5\xb4l/]\xc1\x15Fs\x9f)tse\xa9`\xadv_n"ME\x94\xa4\x0bY&\xd3\xc4\xcca\x15\x9a\xbe\x15.\x92\x0c\xb1R\x81\r\xaf\xc4;d\x06\xa5\x89\xa3Q\xf8\xf1\xc1\xbf\xea\x941\x8b\x93\xa0\x83\x9cD{P\x9c\xe9\xa96\xb6\x91\x11\x99X\x9c\x97}"\xc3\x06\xde\xa1\x8b}\x04O!G}\xb2\xd5;<G\x16a\xeb"L+|\x01\xeb\'NdQ>\xd6\x0eX\x14\xb9\x933\x9dj\xf2z\xb8\xca\x10\r\x03\xc6\xf2iMnq\xac\x07\x94p\xb4\xa6;\xd8\t\xb5\xebj\xc9!\xd5pb\xfa\x9c\xf0\xb3]\x08\xc4vGf\xcf\xfc\xb1\x10\x88\xa4j\x1a\xbc\x0c\xfa\x96E\x8a0d\xdf\xf3\x05\xef\x98\r\xdd\x01\xcd\x92\xb7\xc2+\x12\xb7\x00i\x8e\x00\xdb\x83\x03\xf8\xc4K\x03DFAWW\xb3\xc9\x8fjWf\x07\x0f\x8b\x12\x96\xc5\x01\x1c\x18\x83\xc7\xc4Dj\xc1\x8c\x00\xd6k~\xa8*\xb6$\x85\xa7-\xf2\x81o\xb9r\xdd\xd6"Y\x07\x8e\x1f\xc9a\x1f\xdaZya\xabN\x12/X\x8aW\xe1\x9b}y\x14\x0f\xb3\x16\xa3\x94\x9c\xc5\xab\xebF\xa2+\xb1<\xb8Wz\x83?\x01\x08\xb8UD8\xa6\x03\x01_c\x94f\x0cv\xd8\xc2\t\xf0\x82"\x80u_\xefX\xc7\xbf\xa4\tW\xe9P\x86\xd5\xc2\xad\xb2z\xa83\xb3\xf5\x17 \x07\xf9y\xa0\xc9\x8d\x91xS\xfd\xd0x\xaba"\xfe5\xcfy9\x12\xfa\xc6_\x0bf\x88\xbd\x81\x8b\xca\xd4\xb8\x8c\x82yk\xca\xc3\x0f\xfa\x9aF\xcc\x85\xb7 \x11\x01\xb2yy\xd4\xbc#;\x98\xd1|?[i`\x08\xc4\x010\xc7:\x87\x83\x94i\x18\x8e\x96w$\x1e\x96;\x1d\x8cg]\xf2\x1e\xef\xb0>\x1f57\xa4\xb7S\xec\x95M\x9f\x9c\xaf\xd2\xc9\xc0\x0b\'O\xad\x03\xaa\xb4D\x89\xfc\xd5:#\xcb\xc9\x84\x17\xb0"\x0b\x82\xf3\xd6\xad\xdb!\xbdM@7\x8a\xa4@\xd4\xfc\x85\xedZW\x86\xaa=\x02\xbc\xb5\xfeB\xa4\xa6U\xb5\xb3\xe2\x8d\xce\xc0\x85\x17"\x91\xb6*k\x0b\x87\xad`HM\xc6\x1ah\x17\x9c\xca\xddI/jUt*\x1a\x0cE\xe9\x04\xd9\xa9V\x11\xab?\x8a\t\x04\x070!#\x89\xcc}\xbc\xc0\x88g\x951CZz\x8cj\r\xa6;(l\x06u\xd8\xa2\x065c\xef`>I\xca\x7f\xab\xbc\xba\xa6\x17\x8eL\xd5"\x06\x052\x01#N1A\x17\x12\x9a\x04~\xd1\x88y\x1b\xb3\xa5\xa7]\xd7Y\x1f2+\x9c\xb0l\xad\x0c\xa3\x1e\xdaj\x14\xdc\x80\'\x7f\xc8\xb4\x95A\x07%\xaa2t1\x8d\xc9\xc2\xc1~\xe9\xafb\x14[\xc0\xe2\x12\xa3 lj%z\xc7\x1bt\xe4\x01I\x11h,\xd7Q$5\xb3h\x8b\xe5\x98.f\x8d\xb4\xf0\x82\x15xO\x9f\x0b\xb4\x8f#\r\xb9@\xb9\xc1pmm\xc9\x0b\x12h\'\x89\x02b\xe7\xb7"BlCm\xa4D\xae\xfb\x08\xa2\x99\xb3\xf2\x08n\xa7:~\xb5\x97\xa6\x87\xe2?\xfdLP\x8fAB\x83\xe7RFI\x13\x1f\xf2\x0b\x9a\xd9\x92]\x1a\xc9\n\'R\x0e\x17\x82\x7f\x00\xba\x9d\xf1\x8e8\'\xb5\x10*\xc6p+S\xa2\xa5\x7f\x1c\xc8\x89\xd3\xb3\x9f\xaf7\xadve\x0c\x92"{\xd9,9\x9aJ\x83\x1bE\xa6D\xb9\xc5\xa5_\xbf\xd6\x917%\xe8\x87E\x9bs\xa5\x0e&Qu$\x12-\x00\x1d\x00 -\xce-\x8e\xee\x88~\x82\x1dKec<\xdc\xa7j\x98\xca\xe7\xdcy\xb9\x9e\x1f\x7fjT-/\x16\xfd\x01\x00-\x00\x02\x01\x01\x00\x05\x00\x05\x01\x00\x00\x00\x00\x00#\x00\x00\x00+\x00\x07\x06zz\x03\x04\x03\x03\x00\n\x00\x0c\x00\nZZc\x99\x00\x1d\x00\x17\x00\x18\xaa\xaa\x00\x01\x00'
浏览器输入https://localhost:8080/index.html显示不安全
怀疑是我的response写错了,求解