« Snippet/Python/HTTPServer+SSL+Thread » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
(Page créée avec « Snippet d'un code sous Python avec HTTPServer, support TLS/SSL et Multithreading : <code> #!/usr/bin/python3 import http.server import ssl import socketserver class Se... »)
 
Aucun résumé des modifications
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
Snippet d'un code sous Python avec HTTPServer, support TLS/SSL et Multithreading :
Snippet d'un code sous Python avec HTTPServer, support TLS/SSL et Multithreading :


<code>
<pre style="background-color:#eae672;padding:20px;padding-top:30px;padding-bottom:30px;box-shadow: 0 10px 10px 2px rgba(0,0,0,0.3);">
#!/usr/bin/python3
#!/usr/bin/python3


import ssl
import http.server
import http.server
import ssl
import socketserver
import socketserver


Ligne 34 : Ligne 34 :
                 print("Shuttind down server")
                 print("Shuttind down server")
                 server.socket.close()
                 server.socket.close()
</code>
</pre>

Dernière version du 20 avril 2016 à 20:16

Snippet d'un code sous Python avec HTTPServer, support TLS/SSL et Multithreading :

#!/usr/bin/python3

import ssl
import http.server
import socketserver


class ServerHandler(http.server.BaseHTTPRequestHandler):
        def do_GET(self):
                self.send_response(200)
                self.send_header('Content-type', 'text/html')
                self.end_headers()
                self.wfile.write(bytes("Hello World", 'utf-8'))
                return


class ThreadedServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
        """Init a threaded server (handler)"""

if __name__ == '__main__':
        try:
                server = ThreadedServer(('localhost', 8443), ServerHandler)
                server.socket = ssl.wrap_socket(server.socket,
                                                server_side=True,
                                                do_handshake_on_connect=True,
                                                certfile="dummy.crt",
                                                keyfile="dummy.key")
                server.serve_forever()

        except KeyboardInterrupt:
                print("Shuttind down server")
                server.socket.close()