任务是这样的,你需要在http://ip:port处捕获会不断从主机到达的json但是在接收到第一个json之后,脚本没有写就崩溃了,如何捕获错误或了解错误是什么?
import os
import socket
from pathlib import Path
from dotenv import load_dotenv
import json
#Init .env
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
#create webserver socket
def start_my_server():
socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_server.bind(('ip', port))
socket_server.listen(32768)
print('Working...')
global data
global HDRS
while True:
client_socket, address = socket_server.accept()
data = client_socket.recv(32768).decode('utf-8')
#print(data, '-'*20)
# content = 'Well done'.encode('utf-8')
HDRS = 'HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n'
# content = load_page_from_get_request(data)
# client_socket.send(HDRS.encode('utf-8'))
#a = client_socket.send(HDRS.encode('utf-8'))
client_socket.send(HDRS.encode('utf-8'))
#print(a, '+'*20)
client_socket.shutdown(socket.SHUT_WR)
# print('end')
# socket_server.close()
def load_page_from_get_request(request_data):
with open('data.json', 'w') as output_file:
json.dump(data, output_file)
# try
if __name__ == '__main__':
start_my_server()
我的脚本的最新版本
错误在答案中,之后传输结束,我使用了堆栈中已经存在的文章