Spaces:
Sleeping
Sleeping
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.") | |
``` | |
""") | |