0% found this document useful (0 votes)
25 views4 pages

CHAT (Michael Apaza Alanoca)

H

Uploaded by

Victor Achu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views4 pages

CHAT (Michael Apaza Alanoca)

H

Uploaded by

Victor Achu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Chat

Estudiante: Michael Apaza Alanoca

Materia: Ingeniería en redes III

09/10/2024
Configuración de puertos e asignación de ip en una misma red, para la comunicación por
CHAT

Maquina física que funcionara como Servidor

Haciendo ping a la máquina virtual que funcionara como cliente


Programación de chat en Python
Servidor Cliente

import socket import socket


import threading import threading
import tkinter as tk import tkinter as tk
from tkinter import scrolledtext from tkinter import scrolledtext

client_socket = None client_socket = None


def start_server(): def start_client():
global client_socket global client_socket
server_socket = socket.socket(socket.AF_INET, client_socket = socket.socket(socket.AF_INET,
socket.SOCK_STREAM) socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345)) client_socket.connect(('192.168.0.101', 12345))
server_socket.listen(5) while True:
print("Servidor iniciado y escuchando en el puerto try:
12345...") server_response = client_socket.recv(1024).decode()
client_socket, client_address = server_socket.accept() if not server_response:
print(f"Cliente conectado desde {client_address}") print("El servidor se ha desconectado.")
while True: break
try: chat_window.config(state=tk.NORMAL)
message = client_socket.recv(1024).decode() chat_window.insert(tk.END, f"Servidor:
if not message: {server_response}\n")
print("El cliente se ha desconectado.") chat_window.config(state=tk.DISABLED)
break chat_window.yview(tk.END)
chat_window.config(state=tk.NORMAL) except ConnectionResetError:
chat_window.insert(tk.END, f"Cliente: print("La conexión con el servidor ha sido cerrada.")
{message}\n") break
chat_window.config(state=tk.DISABLED) def send_message():
chat_window.yview(tk.END) message = message_entry.get()
except ConnectionResetError: if message:
print("El cliente ha cerrado la conexión de forma chat_window.config(state=tk.NORMAL)
abrupta.") chat_window.insert(tk.END, f"Cliente: {message}\n")
break chat_window.config(state=tk.DISABLED)
client_socket.close() chat_window.yview(tk.END)
server_socket.close() client_socket.send(message.encode())
def send_message(): message_entry.delete(0, tk.END)
global client_socket root = tk.Tk()
message = message_entry.get() root.title("Cliente de Chat")
if message and client_socket: chat_window = scrolledtext.ScrolledText(root,
chat_window.config(state=tk.NORMAL) state='disabled', width=50, height=20)
chat_window.insert(tk.END, f"Servidor: chat_window.pack(pady=10)
{message}\n") message_entry = tk.Entry(root, width=50)
chat_window.config(state=tk.DISABLED) message_entry.pack(pady=10)
chat_window.yview(tk.END) send_button = tk.Button(root, text="Enviar",
client_socket.send(message.encode()) command=send_message)
message_entry.delete(0, tk.END) send_button.pack(pady=10)
root = tk.Tk() threading.Thread(target=start_client,
root.title("Servidor de Chat") daemon=True).start()
chat_window = scrolledtext.ScrolledText(root,
state='disabled', width=50, height=20) root.mainloop()
chat_window.pack(pady=10)
message_entry = tk.Entry(root, width=50)
message_entry.pack(pady=10)
send_button = tk.Button(root, text="Enviar",
command=send_message)
send_button.pack(pady=10)
threading.Thread(target=start_server,
daemon=True).start()
root.mainloop()

You might also like