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
Step-by-step Approach:
- Install third-party modules:
pip install pyqrcode
pip install pypng
- Install the dependencies using pip install at the command line.
- Importing necessary modules:
- http.server and socketserver: To host in the browser.
- pyqrcode: To generate QRcode.
- png: To convert the QRCode into a png file.
- OS: To interact with the Operating system.
- Assign port and name of the user.
- Find Ip address of the PC and convert it to a QR code.
- Create the HTTP request.
- Display the QR code in browser.
Implementation of the above Approach:
Python3
import http.server
import socket
import socketserver
import webbrowser
import pyqrcode
from pyqrcode import QRCode
import png
import os
PORT = 8010
os.environ[ 'USERPROFILE' ]
desktop = os.path.join(os.path.join(os.environ[ 'USERPROFILE' ]),
'OneDrive' )
os.chdir(desktop)
Handler = http.server.SimpleHTTPRequestHandler
hostname = socket.gethostname()
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
url = pyqrcode.create(link)
url.svg( "myqr.svg" , scale = 8 )
webbrowser. open ( 'myqr.svg' )
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()
|
Output:
- Open the python file which has the above code on PC.
- This will generate a QR-code.

- Either Scan the QR-code or type the IP Address shown in the python shell in your mobile browser.

- Share the files with ease by scanning the QR-code that’s generated and get access to the files in PC, from the mobile browser.
Demonstration:

Why Port 8010 ?
TCP Port 8010 use a defined protocol to communicate depending on the application. A protocol is a set of formalized rules that explains how data is communicated over a network. This is secured and is not infected by Virus/Trojan.
Explanation:
- The code finds the name of the USERPROFILE through OS module. And changes the directory to access the files on the desktop.
- Finds the hostname to serve the file in a particular port for secured sharing.
- Then finds the IP address of the system so that we can connect a particular device.
- The IP address is converted into the form of QR-code using the module pyqrcode for easy use.
- The generated image is hosted in a web browser.
- Once the device connected to the same network either scanned QR code or type the IP address can access the files of the system.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
03 Sep, 2021
Like Article
Save Article