Web static server

来源:互联网 发布:mac视频播放器下载 编辑:程序博客网 时间:2024/06/06 09:51
from socket import *from multiprocessing import Processimport redef fun(client_socket):    documentRoot = './Html'    client_data = client_socket.recv(1024)    client_data_lines = client_data.splitlines()    for line in client_data_lines:        print(line)    httpRequestMethodLine = client_data_lines[0].decode('utf-8')    getFileName = re.match("[^/]+(/[^ ]*)",httpRequestMethodLine).group(1)    print('-------------filename = %s'%getFileName)    if getFileName == '/':        getFileName = documentRoot + '/index.html'    else:        getFileName = documentRoot + getFileName    print('filename is %s-----'%getFileName)    try:        f = open(getFileName)    except IOError:        responseHeaderLines = 'HTTP/1.1 404 not found\r\n'        responseHeaderLines += '\r\n'        responseBody = 'Sorry file not found'    else:        responseHeaderLines = 'HTTP/1.1 200 OK\r\n'        responseHeaderLines += '\r\n'        responseBody = f.read()        f.close()    finally:        response = responseHeaderLines + responseBody        client_socket.send(response.encode('utf-8'))        client_socket.close()if __name__ == '__main__':    server_socket = socket(AF_INET,SOCK_STREAM)    server_socket.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)    Addr = ('',8009)    server_socket.bind(Addr)    server_socket.listen()    while True:        client,c_addr = server_socket.accept()        p = Process(target=fun,args=(client,))        p.start()        client.close()
原创粉丝点击