Code Monkey home page Code Monkey logo

tchat's Introduction

Protótipo de um sistema de comunicação modo texto, utiliza o protocolo TCP/IP, sockets e threads para que mais de um cliente possa se conectar simultaneamente.

O sistema funciona da seguinte forma:
Existe o módulo servidor e o módulo cliente.
Ao iniciar o servidor, ele fica "escutando" a espera de conexões. O papel do servidor é realizar a comunicação entre os clientes. Além disso, ele mostra quando um cliente se conecta ou se desconecta, no mesmo instante em que isso acontece.
Para iniciar o cliente, deve-se informar o IP do servidor e a Porta.
Ao iniciar um cliente, ele deve informar um nome de usuário e em seguida o cliente se conecta ao servidor (vale ressaltar que um cliente não pode escolher o nome de usuário de outro cliente já conectado).
Caso um novo cliente se conecte, todos os outros clientes conectados serão informados de que o novo usuário está participando do bate-papo.
As mensagens entre os clientes, por padrão, são mensagens públicas. Mas é possível também, enviar mensagens privadas, onde um cliente envia a mensagem e o servidor repassa apenas para o usuário destino que foi especificado, ao invés de repassar a todos os usuários conectados.
Por fim, ao se desconectar, os outros usuários que permaneceram online são informados que o cliente deixou o bate-papo.

O funcionamento do programa é basicamente esse que foi descrito acima.
Existem os seguintes comandos:

	/sair (o cliente é desconectado)

	/para usuario mensagem (mensagem privada: "usuario" é o nome de um usuário online e "mensagem" é a mensagem a ser enviada)

	/online (retorna o nome dos usuários que estão conectados no momento)

Obs:
- É necessário ter o pacote "termcolor":
	https://pypi.python.org/pypi/termcolor

- Para iniciar o servidor:
	python servidor.py

- Para iniciar o cliente:
	python cliente.py ip porta

tchat's People

Contributors

rodrigolm avatar

Stargazers

Sauloh avatar

Watchers

James Cloos avatar Sauloh avatar  avatar

tchat's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.