Computer Networks is an important topic and to understand the concepts, practical application of the concepts is needed. In this particular article, we will see how to make a simple file-sharing app using Python. An HTTP Web Server is software that understands URLs (web address) and HTTP (the protocol used to view webpages). Python has several packages which is a collection of modules. And it has several built-in servers. The modules used in this project are:
The HTTPServer is a socketserver, which creates and listens at the HTTP socket. The socketserver modules simplify the task of writing network servers. The webbrowser module provides us with a high-level interface to allow and display Web-based documents, simply calling the open() function. The pyqrcode module is used to generate QR Code in just two lines of code. OS module helps for interacting with the operating system. Used for opening files, manipulate paths, and read all lines in all the files on the command line. PyPNG allows PNG image files to be read and written using pure Python
pip install pyqrcode
pip install pypng
```# import necessary modules
for implementing the HTTP Web servers
import http.server
provides access to the BSD socket interface
import socket
a framework for network servers
import socketserver
to display a Web-based documents to users
import webbrowser
to generate qrcode
import pyqrcode from pyqrcode import QRCode
convert into png format
import png
to access operating system control
import os
assigning the appropriate port value
PORT = 8010
this finds the name of the computer user
os.environ['USERPROFILE']
changing the directory to access the files desktop
with the help of os module
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'OneDrive') os.chdir(desktop)
creating a http request
Handler = http.server.SimpleHTTPRequestHandler
returns, host name of the system under
which Python interpreter is executed
hostname = socket.gethostname()
finding the IP address of the PC
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) IP = "http://" + s.getsockname()[0] + ":" + str(PORT) link = IP
converting the IP address into the form of a QRcode
with the help of pyqrcode module
converts the IP address into a Qrcode
url = pyqrcode.create(link)
saves the Qrcode inform of svg
url.svg("myqr.svg", scale=8)
opens the Qrcode image in the web browser
webbrowser.open('myqr.svg')
Creating the HTTP request and serving the
folder in the PORT 8010,and the pyqrcode is generated
continuous stream of data between client and server
with socketserver.TCPServer(("", PORT), Handler) as httpd: print("serving at port", PORT) print("Type this in your Browser", IP) print("or Use the QRCode") httpd.serve_forever()
```