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)