| import streamlit as st | |
| st.markdown(""" | |
| # Level 3 Internet Communication Protocols | |
| # π§ SMTP | |
| - Simple Mail Transfer Protocol: The standard protocol used for sending email messages over the internet. It defines how email clients and servers communicate and deliver messages. | |
| # π¬ XMPP | |
| - Extensible Messaging and Presence Protocol: A communication protocol used for instant messaging, presence information, and contact list management. It allows for interoperability between different messaging platforms. | |
| # π HTTP | |
| - **Hypertext Transfer Protocol**: The foundation of data communication on the World Wide Web. It defines how web browsers and servers exchange information, enabling the retrieval and display of web pages. | |
| """) | |
| st.markdown("""#Code: | |
| ``` | |
| import streamlit as st | |
| import smtplib | |
| from email.message import EmailMessage | |
| import http.client | |
| import requests | |
| # SMTP Example (Simplified) | |
| def smtp_client(server, port, from_email, to_email, subject, message): | |
| msg = EmailMessage() | |
| msg.set_content(message) | |
| msg['Subject'] = subject | |
| msg['From'] = from_email | |
| msg['To'] = to_email | |
| try: | |
| with smtplib.SMTP(server, port) as smtp: | |
| smtp.send_message(msg) | |
| return "Email sent successfully!" | |
| except Exception as e: | |
| return f"Failed to send email: {e}" | |
| # HTTP Example | |
| def http_client(url): | |
| try: | |
| response = requests.get(url) | |
| return response.text[:500] # Return the first 500 characters for brevity | |
| except Exception as e: | |
| return f"Failed to retrieve the URL: {e}" | |
| # Streamlit UI | |
| st.title("Internet Communication Protocols Demo π") | |
| # SMTP Section | |
| st.header("SMTP Demo π§") | |
| smtp_server = st.text_input("SMTP Server", value="smtp.example.com") | |
| smtp_port = st.text_input("SMTP Port", value="587") | |
| from_email = st.text_input("From Email", value="[email protected]") | |
| to_email = st.text_input("To Email", value="[email protected]") | |
| subject = st.text_input("Subject", value="Test Email") | |
| message = st.text_area("Message", value="This is a test email.") | |
| if st.button("Send Email"): | |
| result = smtp_client(smtp_server, smtp_port, from_email, to_email, subject, message) | |
| st.success(result) | |
| # HTTP Section | |
| st.header("HTTP Demo π") | |
| url = st.text_input("URL to fetch", value="http://example.com") | |
| if st.button("Fetch URL"): | |
| result = http_client(url) | |
| st.text_area("Response", value=result, height=250) | |
| ``` | |
| ``` | |
| import streamlit as st | |
| from slixmpp import ClientXMPP | |
| from slixmpp.exceptions import IqError, IqTimeout | |
| class SendMsgBot(ClientXMPP): | |
| def __init__(self, jid, password, recipient, message): | |
| ClientXMPP.__init__(self, jid, password) | |
| self.recipient = recipient | |
| self.msg = message | |
| self.add_event_handler("session_start", self.session_start) | |
| def session_start(self, event): | |
| self.send_presence() | |
| self.get_roster() | |
| try: | |
| self.send_message(mto=self.recipient, mbody=self.msg, mtype='chat') | |
| except IqError as err: | |
| st.error(f"Could not send message: {err.iq['error']['text']}") | |
| self.disconnect() | |
| except IqTimeout: | |
| st.error("Server not responding") | |
| self.disconnect() | |
| else: | |
| st.success("Message sent successfully!") | |
| self.disconnect() | |
| # XMPP Section in Streamlit UI | |
| st.header("XMPP Demo π¬") | |
| jid = st.text_input("Jabber ID", value="[email protected]") | |
| password = st.text_input("Password", type="password") | |
| recipient = st.text_input("Recipient JID", value="[email protected]") | |
| message = st.text_area("Message to send") | |
| if st.button("Send XMPP Message"): | |
| if jid and password and recipient and message: | |
| xmpp = SendMsgBot(jid, password, recipient, message) | |
| xmpp.connect() | |
| xmpp.process(forever=False) | |
| else: | |
| st.error("Please fill in all fields.") | |
| ``` | |
| """) | |