Module CoffeeChat.coffeechat.Client.send
Configuração da classe resposável por enviar mensagens para o servidor
Expand source code
"""Configuração da classe resposável por enviar mensagens para o servidor"""
import os
import sys
import socket
import threading
class Send(threading.Thread):
'''
Thread de envio que espera a entrada do usuário na CLI.
Attributes:
sock (socket.socket): Objeto socket conectado.
name (str): Nome de usuário fornecido pelo usuário.
'''
def __init__(self, sock, name):
super().__init__()
self.sock = sock
self.name = name
def run(self):
'''
Espera a entrada do usuário na CLI e a envia ao servidor.
Digitar 'QUIT' fechará a conexão e sairá do aplicativo.
'''
while True:
message = input(f'{self.name}: ')
sys.stdout.flush()
message = sys.stdin.readline()[:-1]
# leave of app typing 'QUIT'
if message == 'QUIT':
self.sock.sendall(f'Server: {self.name} saiu do chat.')
break
else:
self.sock.sendall(f'{self.name}: {message}')
print('\nSaindo...')
self.sock.close()
os._exit(0)
Classes
class Send (sock, name)-
Thread de envio que espera a entrada do usuário na CLI.
Attributes
sock:socket.socket- Objeto socket conectado.
name:str- Nome de usuário fornecido pelo usuário.
This constructor should always be called with keyword arguments. Arguments are:
group should be None; reserved for future extension when a ThreadGroup class is implemented.
target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.
name is the thread name. By default, a unique name is constructed of the form "Thread-N" where N is a small decimal number.
args is the argument tuple for the target invocation. Defaults to ().
kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.
If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.init()) before doing anything else to the thread.
Expand source code
class Send(threading.Thread): ''' Thread de envio que espera a entrada do usuário na CLI. Attributes: sock (socket.socket): Objeto socket conectado. name (str): Nome de usuário fornecido pelo usuário. ''' def __init__(self, sock, name): super().__init__() self.sock = sock self.name = name def run(self): ''' Espera a entrada do usuário na CLI e a envia ao servidor. Digitar 'QUIT' fechará a conexão e sairá do aplicativo. ''' while True: message = input(f'{self.name}: ') sys.stdout.flush() message = sys.stdin.readline()[:-1] # leave of app typing 'QUIT' if message == 'QUIT': self.sock.sendall(f'Server: {self.name} saiu do chat.') break else: self.sock.sendall(f'{self.name}: {message}') print('\nSaindo...') self.sock.close() os._exit(0)Ancestors
- threading.Thread
Methods
def run(self)-
Espera a entrada do usuário na CLI e a envia ao servidor. Digitar 'QUIT' fechará a conexão e sairá do aplicativo.
Expand source code
def run(self): ''' Espera a entrada do usuário na CLI e a envia ao servidor. Digitar 'QUIT' fechará a conexão e sairá do aplicativo. ''' while True: message = input(f'{self.name}: ') sys.stdout.flush() message = sys.stdin.readline()[:-1] # leave of app typing 'QUIT' if message == 'QUIT': self.sock.sendall(f'Server: {self.name} saiu do chat.') break else: self.sock.sendall(f'{self.name}: {message}') print('\nSaindo...') self.sock.close() os._exit(0)